Несколько MediaPlayers не работают на Nexus 5

Я создаю приложение, которое использует два медиаплеера для одновременного воспроизведения двух аудиофайлов. Это отлично работает на моем устройстве Samsung Galaxy S3, но когда я запускаю его на Nexus 5, звук становится фрагментированным / не прослушиваемым.

Мне интересно, возможно ли использование двух медиаплееров одновременно на Nexus 5, и если нет, то как я могу одновременно воспроизводить два аудиофайла?

Класс SoundPool специально разработан с мультиплексированием нескольких аудиофайлов, чтобы они могли воспроизводиться вместе.

SoundPool soundPool = new SoundPool(2, // number of streams AudioManager.STREAM_MUSIC, // stream type 0); // source quality, does nothing soundPool.setOnLoadCompleteListener(loadCompleteListener); int soundOneId = soundPool.load(context, R.raw.sound1, 1); int soundTwoId = soundPool.load(context, R.raw.sound2, 1); // Once loadCompleteListener.onLoadComplete has been called for both sounds soundPool.play(soundOneId); soundPool.play(soundTwoId); 

Используйте AudioTrack, который обеспечивает звук с низкой задержкой даже при потоковой передаче. http://developer.android.com/reference/android/media/AudioTrack.html .

В этом учебном пособии приведен полный пример того, как использовать AudioTrack для одновременного воспроизведения нескольких аудио.

Обратите внимание, что воспроизведение с использованием AudioTrack по-прежнему будет работать, если на Nexus 5 и других устройствах с одинаковым ограничением не поддерживаются несколько экземпляров одного и того же кодека, поэтому ваше приложение может не работать на всех устройствах.

У меня та же проблема, это полный кошмар:

http://forum.openframeworks.cc/t/choppy-audio-with-ofxandroidsoundplayer-mediaplayer/20961/5

Единственное решение, похоже, использует что-то еще для воспроизведения многодорожечного аудио, будь то FMOD или ExoPlayer, или ручного WAV-микшера, упомянутого выше.