Я новичок в разработке Android и у меня есть вопрос / проблема.
Я играю с классом MediaPlayer, чтобы воспроизвести некоторые звуки / музыку. Я играю сырые ресурсы (res/raw
), и это выглядит довольно просто.
Для воспроизведения необработанного ресурса MediaPlayer должен быть инициализирован следующим образом:
<code>
MediaPlayer mp = MediaPlayer.create(appContext, R.raw.song);
mp.start();
Пока здесь нет проблем. Звук воспроизводится, и все работает отлично. Моя проблема появляется, когда я хочу добавить больше опций в свое приложение. В частности, когда я добавляю кнопку / опцию «Стоп».
По сути, я хочу ... когда я нажимаю "Стоп", музыка останавливается. И когда я нажимаю «Старт», песня / звук начинается снова. (довольно просто!)
Чтобы остановить медиаплеер, вам нужно всего лишь позвонить stop()
. Но чтобы воспроизвести звук снова, медиаплеер необходимо перезагрузить и подготовить.
<code>
mp.reset();
mp.setDataSource(params);
mp.prepare();
Проблема в том, что метод setDataSource()
принимает в качестве параметров только путь к файлу, URI контент-провайдера, путь URL-адреса потокового мультимедиа или дескриптор файла.
Итак, поскольку этот метод не принимает идентификатор ресурса, я не знаю, как установить источник данных для вызова prepare()
. Кроме того, я не понимаю, почему вы не можете использовать идентификатор Resouce для установки источника данных, но вы можете использовать идентификатор ресурса при инициализации MediaPlayer.
Думаю, я что-то упустил. Интересно, смешиваю ли я понятия, и не нужно ли вызывать метод stop()
в кнопке «Стоп». Любая помощь?
Заранее спасибо !!!