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

﹥>﹥吖頭↗ 提交于 2019-12-18 11:45:17

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!