MediaPlayer. Часть 1. Делаем аудиопроигрыватель.

Класс MediaPlayer используется для контроля воспроизведения различных медиафайлов, будь то аудио- или видеозаписи, находящиеся на диске или загруженные из сети.

В этом уроке мы с вами сделаем простейший аудиопроигрыватель. Давайте для начала создадим макет главного экрана. На него добавим всего три кнопки — Play, Pause и Stop.

android_media_player

Файл activity_main.xml:

Теперь напишем базовый код активности.

Файл MainActivity.java:

Теперь вернемся к теме нашего урока — к MediaPlayer. В нашем примере мы будем проигрывать аудиозаписи, которые сохраним в директории res/raw. Предварительно директорию нужно создать. Затем добавьте в него какой-нибудь аудиофайл для примера.

Добавьте новую переменную типа MediaPlayer в ваш класс:

Теперь давайте создадим объект класса MediaPlayer:

Используя метод create() мы получаем нужный нам экземпляр класса. В качестве второго параметра передается идентификатор нашего медиафайла. Здесь мы также реализуем интерфейс OnCompletionListener(), содержащий всего один метод, который будет вызван по завершении проигрывания аудиофайла. Так как обычное завершение вопроизведения соответствует его полной остановке, здесь мы вызываем наш метод stop(), который мы реализуем чуть позже.

Также при первом запуске кнопки Pause и Stop должны быть недоступны, так как останавливать еще, в общем-то, нечего. Внесем еще пару изменений:

Теперь осталось разобраться с управлением. Добавим слушатель нажатий в наш класс:

Назначим этот слушатель нашим кнопкам управления:

Теперь реализуем обработчик нажатий в методе onClick():

Реализация одноименных методов для управления воспроизведением приведена ниже.

Метод воспроизведения play():

Здесь все просто: запускаем плеер, делаем доступными для нажатия кнопки паузы и остановки и недоступной кнопку для начала воспроизведения.

Метод постановки на паузу pause():

Здесь практически тоже самое — делаем недоступной уже нажатую кнопку и разблокируем все остальные.

Метод полной остановки воспроизведения stop():

Данный метод выглядит немножко посложнее предыдущих. В нем мы останавливаем воспроизведение и переводим наш плеер в состояние Preparing (готов к воспроизведению), а затем вызовом метода seekTo(0) перемещаемся в самое начало аудиофайла. Здесь же мы обрабатываем возможные ошибки.

Также, добавим метод stop() в функцию onDestroy() активности, чтобы в случае уничтожения активности остановить воспроизведение.

Дело за малым — запускаем наше приложение:

android_media_player_1

На этом наш урок подошел к концу. Приятного прослушивания!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *