Error SoundPool: no hay más nombres de pista disponibles

Estoy teniendo problemas con la clase soundpool. Aquí va:

En mi app de juego (app music btw) necesito reproducir al menos 32 sonidos cortos al mismo tiempo, así que declaro mi soundpool así:

private SoundPool sp; sp = new SoundPool(128, AudioManager.STREAM_MUSIC, 0); 

Después de eso carga todos los sonidos MP3 necesarios, unos 80 sonidos de 55KB cada uno. No tengo problemas para cargar todos los sonidos, pero es lento! Bueno, no es el problema. El problema real es cuando toco unos 20 sonidos al mismo tiempo, hay un error en mi registro:

 ERROR/AudioFlinger(59): no more track names available ERROR/AudioTrack(26349): AudioFlinger could not create track, status: -12 ERROR/SoundPool(26349): Error creating AudioTrack 

Después de que todos los sonidos que intento reproducir arrojan el mismo error, y no se puede reproducir ningún sonido. Ni siquiera sonidos de otra Activity / soundpool. No tengo ni idea de lo que va o cómo arreglarlo! ¿Debo cambiar el formato de los archivos de sonido? ¿Debo liberar memoria o algo después de tocar un sonido?

(Estoy probando en un Samsung Galaxy S I9000, sistema operativo 2.3.3 La aplicación es 2.1)

Ver esto (en el grupo de android)

Para audio, hay un límite de 32 objetos AudioTrack activos por dispositivo (no por aplicación: necesitas compartir esos 32 con el resto del sistema),

Un par de pensamientos aquí. Uno: el primer parámetro para el constructor de SoundPool no es el número de sonidos que desea cargar en él, es el número máximo de secuencias simultáneas que va a reproducir. Segundo, SoundPool tiene memoria limitada para sonidos, aproximadamente 1 MB. Por lo tanto, no me sorprendería en absoluto si llegas a algún límite indocumentado al número de pistas que puedes cargar al mismo tiempo. Tenga en cuenta que 80 sonidos veces 55k por sonido es definitivamente más de 1 MB. Y ese límite es para después de que los mp3s se hayan descomprimido en los datos audio dentro de SoundPool.

  • Sample not ready soundpool
  • Soundpool reproduce sólo los primeros 5 segundos del archivo. ¿Por qué?
  • Volumen de secuencia en SoundPool vs volumen en AudioManager
  • MediaPlayer de Android setNextMediaPlayer () alternativa
  • Cómo reproducir sonidos en períodos de tiempo precisos entre dispositivos diferentes en Android
  • Android L SoundPool.load () regresión
  • ¿Cómo detener todos los sonidos en SoundPool?
  • Grabar / capturar la reproducción interna de sonido de la aplicación de Android y exportar mp3?
  • Y otra vez sobre problemas de memoria con SoundPool
  • ¿Cómo sé si se ha terminado de reproducir un sonido en android?
  • Android reproducir repetidamente un archivo mp3 sin ningún espacio vacío
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.