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

Dan*_*ico 22 android video-streaming exoplayer

ExoPlayer < 2.x有一类PlayerControlpause()resume()功能,但它已被删除.我找不到办法做到这一点ExoPlayer 2.

如何暂停和恢复播放?

Bla*_*elt 59

你可以使用void setPlayWhenReady(boolean playWhenReady);.如果Exo准备就绪,传递假,你将暂停播放器.传递真实,你将恢复它.您可以使用来检查玩家的状态getPlaybackState()

  • 暂停和播放相同的按钮您可以使用:`player.setPlayWhenReady(!player.getPlayWhenReady());`. (15认同)

小智 21

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

private void pausePlayer(){
    player.setPlayWhenReady(false);
    player.getPlaybackState();
}
private void startPlayer(){
    player.setPlayWhenReady(true);
    player.getPlaybackState();
}
Run Code Online (Sandbox Code Playgroud)

叫他们在这里

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

}

@Override
protected void onResume() {
    super.onResume();
    startPlayer();
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么在"准备就绪后"改变后调用`player.getPlaybackState();`? (15认同)
  • @Caipivara不需要。也许他想表明可以使用它。 (3认同)

小智 5

player.setPlayWhenReady(true);

暂停

player.setPlayWhenReady(false);

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

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

这些代码来自PlayerControlView.