Silenciar audio en ExoPlayer

Estoy usando Google nuevo MediaPlayer 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 cambiar el volumen?

Encontré dos maneras de lograrlo editando DemoPlayer de ExoPlayer.

Buena:

Básicamente, es necesario obtener el audioTrackRenderer que es un ExoPlayerComponent y enviarle un mensaje. Asi que :

  1. Agregar audioRenderer miembro audioRenderer y configurarlo en onRenderers :

     // Complete preparation. this.videoRenderer = renderers[TYPE_VIDEO]; this.audioRenderer = renderers[TYPE_AUDIO]; 
  2. Agregar 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 que el jugador necesitará rebuffer cuando no muestre.
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); 

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 de arriba después de iniciar el jugador de lo contrario obtendrá una excepción nullpointer

Para silenciar el volumen:

 player.setVolume(0f); 

Para activar el volumen:

 player.setVolume(currentVolume); 

tratar

 player.setSelectedTrack(DemoPlayer.TYPE_AUDIO, DemoPlayer.TRACK_DISABLED); 

Análogo a esta línea de código

  • MPEG-TS H.264 con ExoPlayer
  • Creación de una instancia sencilla de ExoPlayer
  • Reproducción de vídeos de YouTube con ExoPlayer
  • Reproducción de vídeo cifrado con ExoPlayer
  • ¿Es posible precargar múltiples secuencias con Exoplayer y reproducir varios videos simultáneamente?
  • ExoPlayer no reproduce audio en los dispositivos que utilizan FFMPEG
  • Cómo reiniciar el vídeo en Exoplayer después de ExoPlayer.STATE_ENDED
  • Textureview obtener Superficie
  • Cómo jugar video de youtube en ExoPlayer en Android?
  • Control del volumen de Exoplayer con una barra de búsqueda
  • Reproducción de HLS con ExoPlayer
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.