In Android 4.x hat meine Audio-Loop-App 0,2 bis 0,5 Sekunden Lücken in den Sound-Loops.Android MediaPlayer-Schleife hat Lücken auch mit OGG-Format
Ich verwende den MediaPlayer, da meine Sounds ziemlich groß sein können (in manchen Fällen 2-3 MB) und mehrere Instanzen gleichzeitig ausführen können.
Ich habe das ziemlich viel recherchiert und ich sehe, dass es einen Fehler für Android 4.x gibt ... aber ich habe viele Arbeitsumgebungen ausprobiert, und ich kann nicht scheinen, dass irgendwelche von ihnen arbeiten.
- alle wavs zu OGG mit Audacity konvertiert (Qualitätsstufe 2 bis 10, es spielte keine Rolle)
- Versuchte setNextMediaPlayer()
- Versuchte seekTo (0) auf Anschlag zu verwenden, und wiederholen Sie
- Versuchte Soundpool, der seine eigenen Fehler hat
Hier ist ein Beispiel für den Code ich verwende:
public class SoundPlayer implements OnCompletionListener {
private MediaPlayer mp = null;
public void initPlayer() {
if(mp == null) {
mp = new MediaPlayer();
}
}
public void prepare(Context context, int resource) {
initPlayer();
try{
mp.reset();
Uri uri = Uri.parse("android.resource://com.myapp.app/"+resource);
mp.setDataSource(context,uri);
mp.prepare();
isPrepared = true;
mp.setOnCompletionListener(this);
} catch(Exception e) {
e.printStackTrace();
}
}
.......... etc (Uses typical MediaPlayer methods such as stop(), start(), setLooping(true)
}
Ich benutze nichts besonderes, also frage ich mich, ob irgendjemand eine Arbeit für den Looping Bug auf Android kennt.
Sind Sie der Lücke wird verursacht wird nicht durch eine einfache Verzögerung beim Laden und die erneute Erstellung Ihrer Mediaplayer-Objekt helfen? –
Verwenden Sie einen Emulator, hatte ich ein ähnliches Problem auf einem Emulator, aber wenn ich es mit einem tatsächlichen Gerät probierte - die Verzögerung war weg. – Ogen
Verwenden eines GS3-Geräts nicht Emulator. Es fühlt sich wie eine Verzögerung an, aber wie würde ich das verhindern? – user3217336