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 ?

18
demandé sur Hugo Gresse 2014-12-10 18:13:18

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 :

  1. Ajouter audioRenderer et onRenderers:

    // Complete preparation.  
    this.videoRenderer = renderers[TYPE_VIDEO];  
    this.audioRenderer = renderers[TYPE_AUDIO];  
    
  2. 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);
24
répondu Hugo Gresse 2016-06-17 08:25:59

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);
14
répondu Khoosham 2017-04-27 07:52:50

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

analogue à cette ligne de code

2
répondu thomasb 2016-06-17 07:11:10

utilisez simplement player.setVolume (0) va désactiver la vidéo.

0
répondu Allen Vork 2018-09-10 10:02:34

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);
0
répondu user1732369 2018-09-18 21:23:04