Вышеуказанное происходит, если вы создаете несколько экземпляров MediaPlayer.
Вы должны прочитать о жизненном цикле медиаплеера и его различных состояниях
- Определите один медиаплеер, например, в области видимости переменной класса
- Создайте экземпляр в методе Oncreate и в методах OnResume, как требуется
- в вашей функции для воспроизведения звука используйте метод .reset, чтобы перевести медиаплеер в состояние ожидания
- использовать .setDataSource или эквивалентный файл, чтобы перевести его в инициализированное состояние
- затем. Приготовьтесь к подготовленному состоянию
- затем .start для воспроизведения звука
- .stop () и т. Д., Чтобы остановить его
- когда вы закончите, используйте функцию .release для освобождения аудио ресурса.
Media Player определяется как переменная области видимости класса и создается в методе OnCreate ()
private void startPlayingAudio()
{
try {
Uri path1 = Uri.parse("android.resource://com.yourpackagehere./" + R.raw.beep);
mp.reset(); // reset to idle state
mp.setDataSource(this, path1); // from idle to initialised state
mp.prepare();
mp.start();
} catch (Exception ioe) {
Log.e(LOG_TAG, "Error playing the beep sound");
}
}