Проблемы с MediaPlayer, необработанными ресурсами, останавливаются и запускаются

Я плохо знаком с разработкой Android, и у меня есть вопрос/проблема.

Я играю вокруг с классом MediaPlayer для репродуцирования некоторых звуков/музыки. Я играю необработанные ресурсы (res/raw) и это выглядит довольно легким.

Для проигрывания необработанного ресурса MediaPlayer должен быть инициализирован как это:


MediaPlayer mp = MediaPlayer.create(appContext, R.raw.song);
mp.start();

До здесь нет никакой проблемы. Звук играется, и все хорошо работает. Моя проблема появляется, когда я хочу добавить больше опций к своему приложению. Конкретно, когда я добавляю кнопку/опцию "Stop".

В основном то, что я хочу сделать..., когда я нажимаю "Stop", музыкальные остановки. И когда я нажимаю "Start", песня/звук запускается. (довольно основной!)

Для остановки медиаплеера только необходимо звонить stop(). Но играть звук снова, медиаплеер должен быть reseted и подготовленный.


mp.reset();
mp.setDataSource(params);
mp.prepare();

Проблема состоит в том что метод setDataSource() только принимает как параметрические усилители путь к файлу, Контент-провайдера URI, путь URL потоковых медиа или Дескриптор файла.

Так, так как этот метод не принимает идентификатор ресурса, я не знаю, как привести в порядок источник данных для вызова prepare(). Кроме того, я не понимаю, почему Вы не можете использовать идентификатор Resouce для установки источника данных, но можно использовать идентификатор ресурса при инициализации MediaPlayer.

Я предполагаю, что пропускаю что-то. Интересно, смешиваю ли я понятия и метод stop() не должен быть назван в кнопке "Stop". Какая-либо справка?

Заранее спасибо!!!

24
задан Deepzz 14 January 2013 в 07:46
поделиться

1 ответ

Вы можете использовать

mp.pause();
mp.seekTo(0);

, чтобы остановить музыкальный проигрыватель.

4
ответ дан 28 November 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: