web-dev-qa-db-fra.com

Comment mettre en pause la lecture et la reprise d'ExoPlayer 2 (PlayerControl a été supprimé)

Dans ExoPlayer < 2.x il y avait une classe PlayerControl avec les fonctions pause() et resume() mais elle a été supprimée Je ne peux pas trouver un moyen de faire cela sur ExoPlayer 2.

Comment puis-je mettre en pause et reprendre une lecture?

12
Caipivara

vous pouvez utiliser void setPlayWhenReady(boolean playWhenReady);. Si Exo est prêt, en passant à false, vous mettez le lecteur en pause. En passant vrai, vous allez le reprendre. Vous pouvez vérifier l'état du joueur en utilisant getPlaybackState()

37
Blackbelt

C'est mon chemin. Créez deux méthodes et appelez-les si nécessaire. 

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

appelez-les ici

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

}

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

jouer player.setPlayWhenReady(true);

pause

player.setPlayWhenReady(false);

Et vous pouvez vérifier l'état de lecture comme ceci:

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

Ces codes proviennent de PlayerControlView.

0
linkaipeng