web-dev-qa-db-ja.com

ExoPlayer 2の再生を一時停止して再開する方法(PlayerControlは削除されました)

_ExoPlayer < 2.x_には、pause()およびresume()関数を持つクラスPlayerControlがありましたが、削除されました。 _ExoPlayer 2_でこれを行う方法が見つかりません。

再生を一時停止および再開するにはどうすればよいですか?

20

void setPlayWhenReady(boolean playWhenReady);を使用できます。 Exoの準備ができている場合、falseを渡すとプレーヤーを一時停止します。 trueを渡すと再開されます。 getPlaybackState()を使用してプレーヤーの状態を確認できます

51
Blackbelt

これが私のやり方です。 2つのメソッドを作成し、必要に応じて呼び出します。

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

再生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からのものです。

1
linkaipeng