piscina suono è in realtà mixer audio. Può riprodurre brevi clip solo se sono codificati come ogg o mp3 o non sono compressi. Il pool audio li archivia sempre nella memoria non compressa e devi sapere che il limite è 1 MB. Se la tua clip è troppo grande in memoria, il pool audio si bloccherà e troverai il seguente errore: "AudioFlinger non è stato in grado di creare lo stato: -12" Il lettore multimediale riproduce lo stream e lo decodifica in tempo reale. Quindi può riprodurre clip molto più lunghi, ma richiede potenza del processore per questo.
Quindi il lettore multimediale è migliore per la musica di sottofondo, mentre il pool audio è meglio per gli effetti audio brevi (clic, esplosioni, loop audio). Inoltre, la piscina sonora può riprodurre più clip contemporaneamente e ha il controllo del volume e della velocità. Inoltre può giocare a loop.
Una nota: non è possibile riprodurre la musica dal pool di suoni se la clip non è completamente caricata e decodificata. Quindi devi usare OnLoadCompleteListener (Android 10 o successivo) per controllarlo. Se si tenta di riprodurre il suono prima che sia decodificato, il pool audio sarà disattivato.
Il lettore multimediale non soffre di questi problemi.
fonte
2013-08-31 12:41:24
Ok, grazie proverò con soundpool. – Fede
MediaPlayer supporta il volume di impostazione per i canali destro/sinistro separatamente. Questo è un buon esempio qui: https: //www.codota.com/android/methods/android.media.MediaPlayer/setVolume in più puoi fare riferimento alla documentazione qui: https://developer.android.com/ di riferimento/android/media/MediaPlayer.html # setVolume (float, float) –