我正在尝试使用搜索栏来控制Exoplayer isntance的音量,这是在我的项目中传输DASH。 我遇到的问题是我的渲染器和播放器在演示项目的类之间分开。 目前我的三个主要类是我的DashRendererBuilder和播放器和播放器活动。 我在我的播放器活动中有我的搜索栏,我想知道如何在我的PlayerActivity中引用必要的播放器和渲染器以控制我的Exoplayer的音量。
从过去的问题我被告知
exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 0.1f);
是我要发送的结束消息,但正如我所说,由于所有类在类之间分开,我在引用单个组件时遇到问题。
理想情况下,我希望能够有两个exoplayer实例,其中一个搜索栏控制两者的混合,这是我的最终目标。
获得一些反馈或指出正确的方向来解决这个问题会很棒,所以非常感谢任何和所有的帮助。非常感谢你们!
答案 0 :(得分:5)
AudioManager有助于处理系统卷。要使用ExoPlayer控制音量,只需使用:
创建AudioManager对象:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
使用Seekbar处理音量:
volumeSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
audioManager.setStreamVolume(exoPlayer.getAudioStreamType(), i, 0);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
如果你想处理硬件音量增加/减少键+ Seekbar,那么只需检查我的answer。