До сих пор мы имели дело с медиа, непосредственно создавая экземпляры классов для воспроизведения и записи медиа в собственном приложении. Одной из замечательных особенностей Android является то, что вы имеете доступ к другим приложениям и можете заставить их работать для вас. Класс MediaStore предоставляет интерфейс к медиаконтенту, который хранится на устройстве, как изнутри, так и извне.
Класс MediaStore также предоставляет API-интерфейсы для работы с медиа. Сюда входят механизмы для поиска на устройстве медиа определенных типов, средства для записи аудио- и видеоконтента в хранилище, установки списков воспроизведения и т.д.
Поскольку класс MediaStore поддерживает намерения для записи аудио и видео, а класс MediaRecorder также осуществляет запись, возникает очевидный вопрос: когда следует использовать MediaStorem, а когда — MediaRecorder? Как вы видели в предыдущем примере с захватом видео и в примерах с записью аудио, MediaRecorder позволяет устанавливать различные опции на источнике для записи. Эти опции включают входные источники аудио/видео, пропорции фрейма, его размеры, форматы вывода и т.п. MediaStore не обеспечивает такого уровня детализации, но если он вам не нужен, то, скорее всего, проще иметь дело с намерениями MediaStore. Что более важно — контент, созданный в MediaRecorder, не является автоматически доступным другим приложениям, которые обращаются к хранилищу медиа. Тем не менее, в случае применения MediaRecorder может понадобиться добавить запись в хранилище медиа с помощью API- интерфейсов MediaStore, так что, возможно, будет проще воспользоваться MediaStore.
Другое существенное отличие состоит в том, что вызов MediaStore через намерение не требует от приложения запроса прав доступа для записи аудио, доступа к камере или записи на SD-карту. Приложение вызывает отдельную активность, которая уже должна обладать соответствующими правами доступа. Активности MediaStore уже имеют такие права доступа. Итак, давайте посмотрим, как работать с API-интерфейсами MediaStore.
Запись аудио с использованием намерения
Как уже было, запись аудио довольно проста, но она становится еще проще, если вы используете намерение из MediaStore. В демонстрируется применение намерения для записи аудио.
Код в создает намерение, запрашивающее у системы начало записи аудио. Этот код запускает намерение в отношении активности, вызывая startActivityForResult с передачей намерения и requestCode. Когда запрошенная активность завершается, происходит вызов onActivityResult с requestCode. в onActivityResult , мы ищем код requestCode, соответствующий тому, что был передан startActivityForResult, и затем извлекаем URI сохраненного медиаконтента посредством вызова data.getData. Затем при желании этот URI можно передать намерению для прослушивания записи. Пользовательский интерфейс для показан.
ы два экранных снимка. Снимок слева отображает программу аудиозаписи во время записи, а снимок справа — пользовательский интерфейс активности после останова записи.
Опубликовал Kest
February 14 2015 13:37:45 ·
0 Комментариев ·
2548 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.