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?
- Listador de la lista de reproducción de ExoPlayer 2
- En Android, usando exoplayer, ¿cómo rellenar surfaceview con un video que no tiene la misma relación de aspecto con el dispositivo?
- Android - Exoplayer 2 - reproduce múltiples sonidos / audio simultáneamente - MergingMediaSource
- Android ExoPlayer onProgressChanged
- ExoPlayer y comandos start / pause / seekTo
- Cómo utilizar un solo jugador para los anuncios y el vídeo con google android Exoplayer
- ¿Cómo jugar múltiples (máximo de cuatro en mi caso). M3u8 streaming de vídeo en una sola actividad en android?
- Exoplayer: ¿Cómo reproducir audio a través de auriculares?
- Android - ExoPlayer2 subtítulos
- ¿Cómo utilizar exoplayer para reproducir un mp4 mientras estoy descargando desde un proxy local?
- ExoPlayer: obtiene las canciones metadata de la secuencia HTTP
- ¿Hay una manera de utilizar ExoPlayer para recrear ThumbnailUtils.extractThumbnail
- ExoPlayer AudioTrack Tartamudez
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 :
-
Agregar
audioRenderer
miembroaudioRenderer
y configurarlo enonRenderers
:// Complete preparation. this.videoRenderer = renderers[TYPE_VIDEO]; this.audioRenderer = renderers[TYPE_AUDIO];
-
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
- Estadísticas de las aplicaciones de Android en los usuarios de la red de los sitios de Android
- Android: EditText.setInputType () cómo configurar el correo electrónico pero no sugerir automáticamente