Daniel Gomez Rico
Daniel Gomez Rico

Reputation: 15955

How to pause ExoPlayer 2 playback and resume (PlayerControl was removed)

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?

Upvotes: 45

Views: 47209

Answers (3)

Blackbelt
Blackbelt

Reputation: 157487

You can use void setPlayWhenReady(boolean playWhenReady).
If Exo is ready, passing false will pause the player. Passing true will resume it. You can check the player's state using getPlaybackState().

Upvotes: 89

linkaipeng
linkaipeng

Reputation: 503

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.

Upvotes: 5

Ittai Oren
Ittai Oren

Reputation: 542

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();
}

Upvotes: 44

Related Questions