Освой Android играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

MediaPlayer. Музыка нас связала

2-й курс/Закрытая зона

Класс MediaPlayer
Воспроизведение MIDI из ресурсов
Воспроизведение MP3 из ресурсов (Java)
Воспроизведение MP3 из ресурсов (Kotlin)
Воспроизведение следующего трека
Воспроизведение из папки assets
Воспроизведение MP3 из SD-карты
Воспроизведение MP3 из интернета
Метод setVolumeControlStream()
Выбираем MP3-файл через намерение
MediaController

Большинство примеров урока приведены на Java и только один пример есть для Kotlin

Класс MediaPlayer

В составе Android есть класс MediaPlayer из пакета android.media, позволяющий воспроизводить различные музыкальные файлы (и видео), размещённые в ресурсах приложения, локальных файлах, источниках данных или в сетевом потоке.

На данный момент класс считается морально устаревшим, лучше переходить на ExoPlayer. Но для простых операции можно ещё использовать MediaPlayer.

В объекте MediaPlayer управление аудио- и видеофайлами реализовано в виде машины состояний:

  • инициализация медиапроигрывателя с помощью заданных мультимедийных данных
  • подготовка объекта MediaPlayer к воспроизведению
  • запуск воспроизведения
  • временная или полная остановка во время воспроизведения
  • завершение воспроизведения

Чтобы проигрывать мультимедийный ресурс, необходимо создать новый экземпляр класса MediaPlayer, инициализировать его с помощью источника медиаданных и подготовить к воспроизведению. При завершении процесса проигрывания необходимо вызвать метод release() из объекта MediaPlayer, чтобы освободить соответствующие ресурсы.

Android поддерживает ограниченное число одновременно работающих объектов MediaPlayer. Не освобождая их, вы рискуете столкнуться с выбросом исключения, когда система исчерпает ресурсы.

Android поддерживает следующие форматы аудио (на устройствах):

  • WAV (и на эмуляторе)
  • AAC
  • MP3 (и на эмуляторе)
  • WMA
  • AMR
  • OGG (и на эмуляторе)
  • MIDI

Лучше использовать OGG (звуковые эффекты) и MP3 (музыка), WAV слишком велик по объёму - его лучше не использовать.

Стандартный аудиоформат для Android - 16-битное стерео с частотой дискретизации в 44.1 кГц.

Также в Android есть класс SoundPool, который поддерживает одновременное проигрывание нескольких аудиопотоков.

Кроме того, MediaPlayer поддерживает проигрывание видеоконтента, но об этом в другой статье.

Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью

Дополнительные материалы

Реклама