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