In ExoPlayer < 2.x
there was a class PlayerControl
with pause()
and resume()
functions but it was removed. I can't find a way to do this on ExoPlayer 2
.
How can I pause and resume a playback?
you can use void setPlayWhenReady(boolean playWhenReady);
. If Exo is ready, passing false you will pause the player. Passing true you will resume it. You can check the player's state using getPlaybackState()
This is my way. Create two methods and call them when needed.
private void pausePlayer(){
player.setPlayWhenReady(false);
player.getPlaybackState();
}
private void startPlayer(){
player.setPlayWhenReady(true);
player.getPlaybackState();
}
call them here
@Override
protected void onPause() {
super.onPause();
pausePlayer();
}
@Override
protected void onResume() {
super.onResume();
startPlayer();
}
play
player.setPlayWhenReady(true);
pause
player.setPlayWhenReady(false);
And you can check play state like this:
private boolean isPlaying() {
return player != null
&& player.getPlaybackState() != Player.STATE_ENDED
&& player.getPlaybackState() != Player.STATE_IDLE
&& player.getPlayWhenReady();
}
These codes are from PlayerControlView
.
来源:https://stackoverflow.com/questions/40555405/how-to-pause-exoplayer-2-playback-and-resume-playercontrol-was-removed