Android - Wie kann ich feststellen, wenn der MediaPlayer gepuffert wird?
Ich habe etwas zu fehlen hier offensichtlich, aber ich kann nicht scheinen, nichts zu finden, mir zu erlauben, zu bestimmen, Wann MediaPlayer puffert audio. Ich bin streaming-internet-audio-und I anzeigen möchten, die eine buffering-Anzeige, aber nichts, was ich versucht habe, ermöglicht es mir, zu wissen, Wann MediaPlayer unterbricht die audio-Puffer, so dass ich kann nicht richtig angezeigt eine buffering-Anzeige. Irgendwelche Hinweise?
Kommentar zu dem Problem - Öffnen
Alle updates zu diesem haben? Ich bin versucht, einen streaming-video-player. Alle Kommentare willkommen.
InformationsquelleAutor der Frage Daniel | 2010-12-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
@Daniel, Sie nach Ihrem Kommentar auf @JRL Antwort, könnten Sie wahrscheinlich bekommen, diese arbeiten durch das drehen bis ein thread und wartet auf einen timeout.
Etwas wie DetectBufferTimeout.java (ungetestet) würde gut tun.
Ich muss allerdings Zustimmen, dass sich drehenden, bis dieser separate thread ist ein bisschen ein hack. Vielleicht
OnBufferingUpdateListener
könnte eine Garantie, wie oft er ruftonBufferingUpdate()
unabhängig davon, ob eine änderung in der Pufferung Fortschritt stattgefunden hat, so können wir erkennen, wenn wir immer den gleichen Wert, der über und über.InformationsquelleAutor der Antwort Matt Briançon
Wie unten (API level ≥ 9):
HINWEIS : Es gibt einen bekannten bug in Android. Beim spielen HLS-stream, es ist nur nie Anrufe OnInfoListener oder OnBuffering. überprüfen Sie diesen link OnInfoListener bug
InformationsquelleAutor der Antwort ljian
Ok, ich fühle mich ein wenig bestätigt jetzt. Ich habe die Pandora-app und es nicht angezeigt wird eine buffering-Anzeige. Wenn die Musik unterbrochen wird, Pufferung, es sitzt nur da, als ob nichts passiert ist und das UI sieht aus wie es noch zu spielen. Also ich bin zu dem Schluss gekommen, dass, wenn Sie mit MediaPlayer, es ist einfach nicht möglich, zu bestimmen, ob der track ist vorübergehend pausiert für die Pufferung.
Aber ich habe bemerkt, dass es ein paar MediaPlayer Konstanten, die von nutzen sein könnte:
MEDIA_INFO_BUFFERING_START und MEDIA_INFO_BUFFERING_END. Aber Sie sind nur verfügbar in API-level 9+, und die docs nicht sagen nichts über Sie. Ich nehme an, Sie können verwendet werden, mit einem OnInfoListener.
Ich bin enttäuscht, aber wenigstens kann ich aufhören, sich zu drehen meine Räder jetzt und bewegen auf etwas anderes.
InformationsquelleAutor der Antwort Daniel
Registrieren Sie einen OnBufferingUpdate Zuhörer.
InformationsquelleAutor der Antwort JRL
Können Sie einen thread, der überprüft die aktuelle position des MediaPlayer. Wenn die position nicht ändern, können Sie davon ausgehen, dass die Medien bei der Pufferung Zustand. Hier ist das komplette tutorial, das ich geschrieben habe: http://www.ottodroid.net/?p=260
InformationsquelleAutor der Antwort Murat