Sie müssen playWhenReady
mit einem Player.EventListener überprüfen. Playback states of ExoPlayer sind unabhängig von den Spielern oder nicht angehalten zu werden:
player.addListener(new Player.DefaultEventListener() {
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
if (playWhenReady && playbackState == Player.STATE_READY) {
// media actually playing
} else if (playWhenReady) {
// might be idle (plays after prepare()),
// buffering (plays when data available)
// or ended (plays when seek away from end)
} else {
// player paused in any state
}
}
});
Zum Abspielen/Pause der Spieler ExoPlayer bietet
player.setPlayWhenReady(boolean)
Die Reihenfolge der Wiedergabe Staaten mit ExoPlayer mit einer Mediendatei, die nie zu rebuffer Ständen ist einmal in jedem der vier Zustände und drückt nicht Wiedergabe-/Pause:
Player.STATE_IDLE;
Player.STATE_BUFFERING;
Player.STATE_READY;
Player.STATE_ENDED;
jedes Mal, wenn die Spieler es puffern muss geht:
Player.STATE_READY;
Player.STATE_BUFFERING;
Player.STATE_READY;
Die Einstellung playWhenReady wirkt sich nicht auf den Status aus.
Alle zusammen, um Ihre Medien spielt eigentlich, wenn
playWhenReady && playbackState == Player.STATE_READY
Es wenn fertig spielt. :)