Ich habe Android SoundPool
als Mechanismus zur Implementierung von Soundeffekten in meiner allgemeinen Spieleentwicklungsbibliothek betrachtet. Es schien ideal.
Aber ein wenig Forschung zeigt , dass es alle Arten von Bugs in SoundPool
. Sind die Fehler SoundPool
noch relevant?
Da ich eine Bibliothek entwickle, werden alle Fehler SoundPool
zu Fehlern in meiner Bibliothek, und ich möchte meine Benutzer davon isolieren.
Meine Frage lautet also im Grunde: Welche API soll ich für Audio verwenden?
Das Verwenden AudioTrack
und Schreiben meines eigenen Mixers kommt nicht in Frage. Aber natürlich wäre es vorzuziehen, dies zu vermeiden. Und gibt es eine API, die mir die Dekodierung ermöglicht?
Ich muss in der Lage sein, eine angemessene Anzahl gleichzeitiger Soundeffekte (mindestens 16, sagen wir) abzuspielen und noch offener zu sein. Sounds müssen mit geringer Latenz abgespielt werden. WAV
Dateien müssen unterstützt werden (MP3 / Ogg ist unwichtig). Soundeffekte müssen nahtloses Looping und eine dynamische, individuelle Lautstärkeregelung unterstützen. Der Lebenszyklus der Android-App muss ordnungsgemäß unterstützt werden.
Ich habe gehört, dass es irgendwo ein Limit von 1 MB SoundPool
gibt. Dies ist wahrscheinlich für jeden einzelnen Soundeffekt akzeptabel, aber nicht für alle Puffer / Sounds. Kann mir jemand genau sagen, wo das Limit liegt?
Schließlich muss ich auch Hintergrundmusik in komprimierten Formaten mit geringer CPU-Auslastung abspielen können. Ich nehme an, das MediaPlayer
ist ideal dafür. Kann es parallel zu einer anderen API verwendet werden?
Ich weiß, dass einige Leute verwendet haben MediaPlayer
, um für zu füllen SoundPool
. Aber unterstützt es die Funktionen, die ich brauche?
Gibt es andere Audio-APIs, die ich vermisst habe?