Это сложный вопрос :/
Я делаю музыкальную игру для Android в стиле Audiosurf. Все работает отлично, за исключением нескольких секунд до окончания песни (которая воспроизводится с помощью обычного MediaPlayer), музыка сразу останавливается, и вся игра (включая пользовательский интерфейс) зависает на несколько секунд.
Каждый раз, когда это происходит, я вижу ошибку «Воспроизведение AudioHardware pcm переходит в режим ожидания» в logcat.
Поиск в Google привел меня к выводу, что
- это может быть проблема, связанная с HTC Hero (не может быть воспроизведена на эмуляторе или других устройствах)
- это сообщение обычно регистрируется, когда поток http недостаточно быстр для MediaPlayer
- Аудио в Android вообще отстой
Поскольку я уже декодирую mp3 с помощью NDK + libmpg123 для анализа звука, я мог бы просто воспроизвести звук сам (используя очень уродливый интерфейс между кодом NDK C и AudioTrack в Java).
Есть ли исправление / обходной путь для этой ошибки, или мне действительно стоит пойти по этому пути? (У меня осталось мало времени, чтобы завершить этот проект)
Ценю каждый намек!