我正在使用名为ExoPlayer的Google新MediaPlayer,但是找不到静音的方法
有没有一种简便的方法可以使Google ExoPlayer上的音轨静音?还是改变音量?
获取当前音量: int currentvolume = player.getVolume();
静音: player.setVolume(0f);
取消静音: player.setVolume(currentVolume);
我发现有两种方法可以通过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);
取消静音:player.setMute(false);
这不是一个好的解决方案,因为播放器在取消静音时需要重新缓冲。
包括将音频轨道更改为空轨道:
// mute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DISABLED);
// Unmute
player.selectTrack(FullPlayer.TYPE_AUDIO, ExoPlayer.TRACK_DEFAULT);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句