Я использую новый MediaPlayer Google с именем ExoPlayer и не могу найти способ отключить звук
Есть ли простой способ отключить звуковую дорожку в Google ExoPlayer? Или изменить громкость?
Я использую новый MediaPlayer Google с именем ExoPlayer и не могу найти способ отключить звук
Есть ли простой способ отключить звуковую дорожку в Google ExoPlayer? Или изменить громкость?
Я нашел два способа добиться этого, отредактировав DemoPlayer
из ExoPlayer.
В основном вам нужно получить audioTrackRenderer
, который является ExoPlayerComponent
, и отправить ему сообщение.
Итак:
Добавьте audioRenderer
член и установите его в onRenderers
:
// Complete preparation.
this.videoRenderer = renderers[TYPE_VIDEO];
this.audioRenderer = renderers[TYPE_AUDIO];
Добавить общедоступный метод:
public void setMute(boolean toMute){
if(toMute){
player.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 0f);
} else {
player.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 1f);
}
}
Использование:
немой: player.setMute(true);
unmute: player.setMute(false);
Это нехорошее решение, которое игроку нужно будет откорректировать при отключении.
Состоит из изменения звуковой дорожки на пустой:
// mute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DISABLED);
// Unmute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DEFAULT);
Новый способ отключения и включения звука с версии 2.3.1 можно сделать следующим образом:
int currentvolume = player.getVolume();
убедитесь, что вы вызываете линию выше, после запуска проигрывателя, иначе вы получите исключение nullpointer
для отключения звука:
player.setVolume(0f);
для включения громкости:
player.setVolume(currentVolume);
попробовать
player.setSelectedTrack(DemoPlayer.TYPE_AUDIO, DemoPlayer.TRACK_DISABLED);
аналогичный этой строке кода