41

其中ExoPlayer < 2.x有一个PlayerControl具有pause()resume()功能的类,但它被删除了。我找不到在 上执行此操作的方法ExoPlayer 2

如何暂停和恢复播放?

4

3 回答 3

85

您可以使用void setPlayWhenReady(boolean playWhenReady).
如果 Exo 准备好false了,传球会暂停球员。通过true将恢复它。您可以使用 来检查播放器的状态getPlaybackState()

于 2016-11-11T20:12:24.663 回答
42

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

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();
}
于 2017-07-20T11:03:18.753 回答
3

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.

于 2018-11-16T02:34:50.063 回答