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?
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()
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();
}
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
.