MediaPlayer, ProgressBar

8

Ist dies der richtige Weg, um eine ProgressBar beim Abspielen von Media zu aktualisieren? Ich dachte, es würde einen Rückruf im MediaPlayer geben, aber ich konnte ihn nicht finden.

%Vor%

Beste Grüße.

    
pouzzler 03.04.2012, 19:56
quelle

3 Antworten

10

Sehen Sie sich an android.widget.MediaController , es hat einen Fortschrittsbalken.

Sie verwenden einen Handler, der sich gegebenenfalls rekursiv selbst aufruft. Sie können die Verzögerung so oft einstellen, wie der Fortschrittsbalken aktualisiert werden soll.

Beachten Sie, dass der Controller sowohl ein- und ausgeblendet als auch vom Benutzer gezogen werden kann, und - natürlich - kann das Video anhalten. Dies sind die Gründe für die verschiedenen Prüfungen ( !mDragging && mShowing && mVideoView.isPlaying() ) vor einem weiteren rekursiven Aufruf, um die Leiste zu aktualisieren.

%Vor%

Um es zu starten, verwenden Sie:

%Vor%

Es wird von selbst beendet, aber Sie sollten die letzte ausstehende Anfrage mit:

abbrechen %Vor%     
Peter Ajtai 03.04.2012, 20:39
quelle
16

Persönlich starte ich einen Thread, der getCurrentPosition() alle 200ms überprüft, bis das onCompletion() -Ereignis abgefeuert wird:

%Vor%     
JRaymond 03.04.2012 20:02
quelle
1

Der effizienteste Weg ist die Verwendung von JRaymonds Antwort und EventBus

%Vor%

Die ChangingEvent-Klasse würde ungefähr so ​​aussehen:

%Vor%

und in deiner Aktivität oder deinem Fragment musst du nur

tun %Vor%     
Fedor Tsyganov 13.07.2015 09:16
quelle

Tags und Links