如何暂停 ExoPlayer 2 播放和恢复(PlayerControl 已删除)

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

ExoPlayer < 2.x 中有一个 class PlayerControl 具有 pause()resume() 功能,但它已被删除。我在 ExoPlayer 2.

上找不到执行此操作的方法

如何暂停和继续播放?

您可以使用 void setPlayWhenReady(boolean playWhenReady).
如果 Exo 准备就绪,传递 false 将暂停播放器。传递 true 将恢复它。您可以使用 getPlaybackState().

检查播放器的状态

这是我的方式。创建两个方法并在需要时调用它们。

private void pausePlayer(){
    player.setPlayWhenReady(false);
    player.getPlaybackState();
}
private void startPlayer(){
    player.setPlayWhenReady(true);
    player.getPlaybackState();
}

在这里打电话给他们

 @Override
protected void onPause() {
    super.onPause();
   pausePlayer();

}

@Override
protected void onResume() {
    super.onResume();
    startPlayer();
}

播放 player.setPlayWhenReady(true);

暂停

player.setPlayWhenReady(false);

你可以这样查看播放状态:

private boolean isPlaying() {
return player != null
    && player.getPlaybackState() != Player.STATE_ENDED
    && player.getPlaybackState() != Player.STATE_IDLE
    && player.getPlayWhenReady();
}

这些代码来自PlayerControlView