Я пробовал почти каждый метод, но мне не удалось добиться беспроблемного воспроизведения звука между циклом одного трека продолжительностью 10-15 секунд.
Шаги, которые я пробовал и не выполнял:
-
Различные форматы аудиофайлов
.mp3
.wav
.ogg
, используяsetLooping(true)
:MediaPlayer mp1 = MediaPlayer.create(MainActivity.this, R.raw.track1); mp1.setLooping(true); mp1.start();
-
Создание двух медиаплееров и циклирование один за другим с использованием
setOnCompletionListener
то же самое не удалось выполнить без пробелов. -
Используя
setNextMediaPlayer(nextmp)
, как это работает, но возможны только две петли. Мы должны подготовиться и начать снова после завершения предыдущих двух циклов.mp1.start(); mp1.setNextMediaPlayer(mp2);
-
Update: Результат ответа @Jeff Mixon: Цикл Mediaplayer останавливается с ошибкой Android. Джефф Миксон работает нормально, но только за 10 или 20 циклов после этого, из-за некоторых проблем с сборкой мусора Mediaplayers останавливается сразу же, оставляя журналы, как указано ниже. Я действительно застрял здесь два года. Спасибо заранее.
E/MediaPlayer(24311): error (1, -38) E/MediaPlayer(23256): Error(1,-1007) E/MediaPlayer(23546): Error (1,-2147483648)