android - roku - fmp4 exoplayer
Silenciar audio en ExoPlayer (5)
Estoy usando el nuevo MediaPlayer de Google llamado ExoPlayer y no puedo encontrar una manera de silenciar el sonido
¿Hay una manera fácil de silenciar la pista de audio en Google ExoPlayer? ¿O cambiando de volumen?
La nueva forma de silenciar y activar el volumen a partir de la versión 2.3.1 se puede hacer de la siguiente manera:
int currentvolume = player.getVolume();
asegúrese de llamar a la línea anterior después de iniciar el reproductor; de lo contrario, obtendrá una excepción nula.
para silenciar el volumen:
player.setVolume(0f);
para activar el volumen:
player.setVolume(currentVolume);
Recomendaré obtener el volumen actual primero y luego silenciarlo. Cuando desactives el sonido, puedes dar al usuario el mismo volumen.
float currentvolume;
currentvolume = player.getVolume();
player.setVolume(0.0f);
Simplemente use player.setVolume (0) silenciará el video.
tratar
player.setSelectedTrack(DemoPlayer.TYPE_AUDIO, DemoPlayer.TRACK_DISABLED);
análogo a esta línea de código
Encontré dos maneras de lograrlo editando DemoPlayer
desde ExoPlayer.
Buena una
Básicamente, necesita obtener el audioTrackRenderer
que es un ExoPlayerComponent
y enviar un mensaje a él. Asi que :
Agrega
audioRenderer
miembro deaudioRenderer
yonRenderers
enonRenderers
:// Complete preparation. this.videoRenderer = renderers[TYPE_VIDEO]; this.audioRenderer = renderers[TYPE_AUDIO];
Añadir método público:
public void setMute(boolean toMute){ if(toMute){ player.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 0f); } else { player.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 1f); } }
Uso
mute: player.setMute(true);
player.setMute(false);
: player.setMute(false);
El otro :
Esta no es una buena solución, ya que el jugador tendrá que refuflar cuando esté desactivado.
Consiste en cambiar la pista de audio a una vacía:
// mute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DISABLED);
// Unmute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DEFAULT);