МУЛЬТИМЕДІА в Android додатку

У сучасному світі конвергентних технологій мобільний телефон має безліч функцій, крім звичайних голосових дзвінків Мультимедійні можливості, тобто відтворення і запис аудіо і відео, – одна з таких важливих сфер, і з цим погодяться багато користувачів Просто озирніться в натовпі – і ви обовязково помітите кілька людей, які користуються на мобільному телефоні різними програмами і діляться з друзями записами, які самі й зробили Android надає API, що забезпечують простий доступ до цих можливостей У тому числі ці API дозволяють вбудовувати мультимедійні можливості в сам додаток і управляти ними

АУДІО І ВІДЕО

Android підтримує відтворення більшості популярних форматів аудіо і відео Крім того, система дозволяє записувати медійну інформацію в декількох форматах Записи зберігаються в файлах, при необхідності їх можна переносити в довгострокове сховище медійної інформації MediaStore – це спеціальний постачальник вмісту в Android, що забезпечує збереження і спільне використання медійних даних, наприклад зображень, відео і аудіо Після того як метадані, асоційовані з медіа, опиняються в цьому постачальнику вмісту, їх можуть використовувати інші додатки

На момент написання книги більшість пристроїв Android, наявних на ринку, підтримують такі аудіо-і відеоформати Зверніть увагу на те, що виробники пристроїв можуть додавати і підтримку інших форматів, не перелічених тут

Аудіо:

• ААС LC / LTP *

• HE-AACvl (ААС +)

• HE-AACV2 (покращений ААС +)

• AMR-NB *

• AMR-WB *

• МРЗ

• MIDI

• Ogg Verbis

• PCM / WAVE Про Відео:

• H263*

• H264AVC  

• MPEG-4 SP

Зірочка (*) вказує формати, для яких підтримується кодування Для всіх інших форматів підтримується тільки декодування

Більш детальна актуальна інформація наводиться на сайті розробників Android за адресою http://developerandroidxom/guide/appendix/media-formatshtml

ВІДТВОРЕННЯ АУДІО І ВІДЕО

Android надає стандартний засіб для відтворення аудіо та відео: клас MediaPlayer При роботі з аудіоконтентом цей клас дозволяє відтворювати та необроблені дані Така можливість дуже корисна в складних додатках, де аудіо генерується динамічно

У ході життєвого циклу MediaPlayer проходить кілька етапів:

бездіяльність (idle) – інстанціювати MediaPlayer

инициализирован (initialized) – встановлено джерело медійної інформації

приготування (preparing) – MediaPlayer готує медіаджерел до відтворення

приготовлений (prepared) – MediaPlayer готовий до відтворення

запущений (started) – відтворення йде

призупинений (paused) – відтворення припинено

відтворення завершено (playback complete) – відтворення вихідної інформації завершено (і його можна почати заново)

зупинений (stopped) – MediaPlayer не готовий до відтворення вихідної інформації

кінець (end) – MediaPlayer більше не працює, і повязані з ним ресурси звільняються

Більш глибоке уявлення про ці станах дозволяє скласти діаграма станів, наведена на сайті розробників Android за адресою http://developer androideom / reference / android / media / MediaPlayerhtml # StateDiagram Перед тим як почати роботу з MediaPlayer, буде корисно розглянути серію етапів, що відбуваються у вашому додатку

1 Створення примірника MediaPlayer за допомогою методу create () (стан бездіяльності)

2 Ініціалізація MediaPlayer з медійним джерелом, який слід відтворити (ініціалізацію стан)

3 Підготовка MediaPlayer до відтворення за допомогою методу ргерагеО (стан приготування і готовності)

4 Відтворення MediаРlауеr за допомогою методу start () (робочий стан)

5 У ході відтворення за бажанням можна призупинити, зупинити остаточно або повторно відтворити MediaPlауеr (робочий стан, стану паузи, завершення відтворення і зупинки роботи)

6 Після того як робота буде завершена, обовязково вивільните ресурси, асоційовані з MediaPlауеr Для цього викликається метод release () (кінцевий стан)

У наступних розділах ці етапи розглядаються більш докладно

Відтворення аудіо

Для відтворення аудіо можна скористатися одним з двох методів – Medi aPl ауег і Audi oTrack Medi aPl ауег – це стандартний, простий спосіб відтворення Його дані повинні бути потоковими або знаходитися у файлі Audi oTrack, Навпаки, забезпечує прямий доступ до необроблених аудіоданих, розташованим в памяті

Відтворення аудіо за допомогою MediaPlayer

Починаючи працювати з Medi а PI ауег, необхідно визначити, чи будемо ми використовувати файл, розташований в каталозі з ресурсами додатки Якщо ми збираємося зробити саме так, то в MediaPlayer є зручний статичний метод, який задає джерело даних і готує плеєр до роботи:

MediaPlayer mediaplayer = MediaPlауегcreate (this, Rrawexample)

Якщо ви не використовуєте ресурс додатки, тобто, наприклад, посилаєтеся на аудіофайл, що знаходиться у файловій системі (карта памяті і т п) або на сайті (припустимо, за адресою http://SomeServer/SomeAudioFilemp3), то вам доведеться вручну задати джерело даних і викликати його Дані можна взяти за унікальним ідентифікатором, зробивши такий виклик:

setDataSource(context, uri)

Контекст, який задається в першому аргументі, дозволяє Medi aPl ауег отримати доступ до ресурсів самого додатки і, як наслідок, дає можливість отримати дані по URI Підійде як контекст додатки, так і контекст активності

Інший варіант – вказати абсолютний шлях до файлу за допомогою:

setDataSource(pat/7)

API версії 9 дозволяє додати до плеєра деякі додаткові ефекти (наприклад, реверберацію) Можете ставити будь-які звукові ефекти на етапі установки джерела даних до виклику методу ргерагеО:

Після того як MediaPlayer буде підготовлений, можна починати відтворення:

mediaplayerstartO

Під час відтворення плеєр можна поставити на паузу або зупинити взагалі Щоб відновити відтворення зі стану паузи, досить просто знову викликати start () Коли MediaPlayer зупинений взагалі, його можна знову запустити лише після повторної активації методом reset О, який заново виконує ініціалізацію з джерелом даних, як це було показано вище, і задіює метод ргераге () Розглянемо наступний код:

Поки MediaPlayer програє аудіо, ви можете відстежувати, в якій точці файлу зараз відбувається відтворення, за допомогою методу getCurrentPosi tion () Цей метод повертає кількість часу, який пройшло з початку відтворення, в мілісекундах:

medi АРІ ayer getCurrentPositionO

Після того як MediaPlayer більше не буде вам потрібен, обовязково звільніть повязані з ним ресурси, щоб система знову могла ними користуватися:

mediаріayerrelease ()

Відтворення аудіо за допомогою AudioTrack

AudioTrack забезпечує значно більш прямий метод відтворення аудіо У наступному прикладі показані параметри, необхідні, щоб налаштувати

AudioTrack:

Метод Audi оТгаск дозволяє задати тип потоку аудіо (музика, дзвінок, будильник, голосовий виклик і т д), частоту зразка в герцах (44100, 22050, 11025), конфігурацію аудіо (моно або стерео), формат і кодування аудіо, довжину аудіо, виражену в байтах, а також режим (статичний або потоковий) Примірник класу AudioTrack в Android достатньо один раз конфігурувати, і він автоматично буде розпізнавати, як взаємодіяти з обладнанням пристрої, забезпечуючи максимально зручну роботу з медіа

Для відтворення аудіо виконується метод pi ау (), і дані зчитуються з пристрою в буфер:

Щоб припинити відтворення, використовуйте метод pause ():

Щоб зупинити відтворення, переведіть доріжку в стан «зупинено» Якщо ця доріжка вам більше не потрібна, відпустіть В іншому випадку, якщо буде потрібно знову відтворити аудіо, спочатку його потрібно буде повторно ініціалізувати:

Відтворення відео

Відтворення відео на відміну від відтворення аудіо здійснюється тільки за допомогою MediaPlayer Відеоеквівалента для Audi оТгаск не існує Відео працює з MediaPlayer приблизно так само, як і аудіо, але ви повинні додатково вказувати вид (званий поверхнею), на якому відео буде відображатися В Android надається зручний елемент управління, в якому вже є власна поверхню: вид VideoView Нижче ми покажемо, як ним користуватися У цьому прикладі буде описано додавання опціонального контролера, який дозволяє користувачеві управляти відтворенням за допомогою простого інтерфейсу У цьому інтерфейсі є кнопки для запуску, зупинки та призупинення відтворення, а також є повзунок, що дозволяє переходити вперед або назад по мірі відтворення відео:

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*