sonido - reproducir archivos ogg android studio
AudioTrack, SoundPool o MediaPlayer ¿Qué debo usar? (4)
Además de lo que sugieren las otras respuestas, una diferencia entre MediaPlayer y SoundPool es que en MediaPlayer, no puede reproducir un clip de sonido cuando ya se está reproduciendo (esa función podría ser útil, especialmente en los juegos). MediaPlayer necesita que el clip termine por completo antes de poder reproducirse nuevamente. Creo que esa información se proporciona en el sitio web oficial.
Sin embargo, SoundPool no tiene ese problema y también noté que SoundPool reproduce el audio justo cuando se llama (a veces noté un ligero retraso cuando usé MediaPlayer).
Creo que esa es (en parte) la razón por la que la gente dice que SoundPool es mejor para sonidos cortos, como en los juegos. Espero que esto ayude:)
Necesito reproducir múltiples archivos de audio, con diferente duración, como de 5 a 30 segundos. Y quiero configurar el volumen de forma independiente para el canal derecho / izquierdo y también para aplicar efectos, como Reverb o Distortion. Entonces, ¿qué API debo usar?
Además, no puedo encontrar demasiados documentos en la API de AudioTrack. ¿Sabes dónde puedo encontrar ejemplos? Gracias.
El grupo de sonido es en realidad mezclador de audio. Puede reproducir clips cortos solo sin importar si están codificados como ogg o mp3 o si están sin comprimir. El grupo de sonidos siempre los almacena en la memoria sin comprimir, y debe saber que el límite es de 1 MB. Si su clip es demasiado grande en la memoria, el grupo de sonido quedará en silencio, y encontrará el siguiente error: "AudioFlinger no pudo crear una pista. Estado: -12" El reproductor de medios reproduce y decodifica en tiempo real. Por lo tanto, puede reproducir clips mucho más largos pero necesita la potencia del procesador para ello.
Por lo tanto, el reproductor multimedia es mejor para la música de fondo, mientras que el grupo de sonido es mejor para los efectos de audio cortos (clics, explosiones, bucles de sonido). Además, el grupo de sonidos puede reproducir más clips simultáneamente y tiene control de volumen y velocidad. También puede jugar loops.
Una nota: no puede reproducir música desde el grupo de sonido si el clip no está completamente cargado y descodificado. Por lo tanto, debe usar OnLoadCompleteListener (Android 10 o superior) para verificarlo. Si intenta reproducir el sonido antes de que se descodifique, el grupo de sonidos se silenciará.
El reproductor multimedia no sufre de estos problemas.
MediaPlayer no admite la configuración del volumen para múltiples canales.
Creo que SoundPool es lo único que se adapta a tus necesidades aquí.
EDIT: Sí, necesita un SoundPool, lea esto: http://www.wiseandroid.com/post/2010/07/13/Intro-to-the-three-Android-Audio-APIs.aspx
Recomendaría MediaPlayer por tal duración.
Puedes encontrar más información aquí: ¿Qué tan malo es Android SoundPool? ¿Qué alternativa utilizar?