Mute audio sur ExoPlayer
j'utilise Google new MediaPlayer nommé ExoPlayer et je ne peux pas trouver un moyen de couper le son
y a-t-il un moyen facile de couper la piste audio sur Google ExoPlayer ? Ou changer de volume ?
5 réponses
j'ai trouvé deux façons d'y parvenir par l'édition d' DemoPlayer
à partir de ExoPlayer.
Bon :
Bref, vous l'aurez besoin pour obtenir le audioTrackRenderer
est un ExoPlayerComponent
et envoyer un message.
Donc :
Ajouter
audioRenderer
etonRenderers
:// Complete preparation. this.videoRenderer = renderers[TYPE_VIDEO]; this.audioRenderer = renderers[TYPE_AUDIO];
Ajouter une méthode publique :
public void setMute(boolean toMute){ if(toMute){ player.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 0f); } else { player.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 1f); } }
Utilisation :
muet : player.setMute(true);
activer : player.setMute(false);
autre :
ce n'est pas une bonne solution si le joueur a besoin de rebuffer lors du démutage.
Composé de changer la piste audio à vide:
// mute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DISABLED);
// Unmute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DEFAULT);
La nouvelle façon pour activer et désactiver le volume de la version 2.3.1 peut être fait comme suit:
int currentvolume = player.getVolume();
assurez-vous d'appeler la ligne ci-dessus après le démarrage du joueur sinon vous obtiendrez une nullpointerexception
pour couper le volume:
player.setVolume(0f);
pour activer le son de volume:
player.setVolume(currentVolume);
player.setSelectedTrack(DemoPlayer.TYPE_AUDIO, DemoPlayer.TRACK_DISABLED);
analogue à cette ligne de code
utilisez simplement player.setVolume (0) va désactiver la vidéo.
je recommanderai d'abord d'obtenir le volume courant et ensuite de le couper. Lorsque vous démuterez, vous pouvez donner le même volume à l'utilisateur.
float currentvolume;
currentvolume = player.getVolume();
player.setVolume(0.0f);