问题
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?
回答1:
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()
回答2:
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();
}
回答3:
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