Ich benutze MediaPlayer für die Wiedergabe eines einzigen mp3-Songs aus dem Netzwerk. Datenquelle ist eine HTTP-URL.MediaPlayer.seekTo() funktioniert nicht für ungepufferte Position
Angenommen, wir haben folgenden Spielstatus.
Song-Dauer: 1.00
Aktuelle Fortschritte: 00.10
Strompufferung Fortschritt 0:30
Lassen Sie uns sagen, dass ich einen Teil eines Songs überspringen wollen und nach vorne suchen. Ich mache es mit MediaPlayer.seekTo() -Methode. Wenn ich eine gepufferte Position suche (0:20), wird sie korrekt ausgeführt. Aber wenn ich eine Position suche, die noch nicht gepuffert wurde (0:40) verhält sich der MediaPlayer merkwürdig. Es zeigt sofort an, dass es korrekt gesucht hat, ohne auf das Füllen eines Puffers zu warten. In der Tat spielt es weiter an derselben Stelle, wo es vor dem Suchen war. Von nun an gibt die MediaPlayer.getCurrentPosition() Methode eine falsche Position zurück. Wenn das Abspielen beendet ist und OnCompletionListener.onCompletion Callback aufgerufen wird, ist die aktuelle Position des Media Players viel höher als die gesamte Songdauer.
Irgendwelche Ideen, um das zu lösen?
Danke. Es scheint der Grund zu sein. – plugmind
ja, es gibt ein paar Bugs in der Bug-Tracker im Zusammenhang mit dem Media Player ....;) BTW: Wenn die Antwort hilfreich war, bitte akzeptieren Sie die Antwort (grünes Häkchen) –
Dieser Fehler gilt noch für 2.2 Motorola Droid Geräte, weil sie aus irgendeinem Grund immer noch PVPlayer im Gegensatz zu Stagefright/Awesomeplayer verwenden. Die beste Workaround-Lösung ist die Lösung von jBilbo oder das Herunterladen und Abspielen von SD. – brack