使用搜索栏控制Exoplayer的音量

Max*_*all 6 android class volume seekbar exoplayer

我正在尝试使用搜索栏来控制Exoplayer isntance的音量,这是在我的项目中传输DASH.我遇到的问题是我的渲染器和播放器在演示项目的类之间分开.目前我的三个主要类是我的DashRendererBuilder和播放器和播放器活动.我在我的播放器活动中有我的搜索栏,我想知道如何在我的PlayerActivity中引用必要的播放器和渲染器以控制我的Exoplayer的音量.

从过去的问题我被告知

exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 0.1f);
Run Code Online (Sandbox Code Playgroud)

是我要发送的结束消息,但正如我所说,由于所有类在类之间分开,我在引用各个组件时遇到问题.

理想情况下,我希望能够有两个exoplayer实例,其中一个搜索栏控制两者的混合,这是我的最终目标.

获得一些反馈或指出正确的方向来解决这个问题会很棒,所以非常感谢任何和所有的帮助.非常感谢你们!

SAN*_*NAT 6

AudioManager有助于处理系统音量.要使用ExoPlayer控制音量,只需使用:

创建AudioManager对象:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Run Code Online (Sandbox Code Playgroud)

使用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) {

            }
        });
Run Code Online (Sandbox Code Playgroud)

如果你想处理硬件音量上/下键+ Seekbar,那么只需检查我的答案.

  • 虽然此链接可能会回答这个问题,但最好在此处包含答案的基本部分并提供参考链接.如果链接的页面发生更改,则仅链接的答案可能会无效. - [来自评论](/ review/low-quality-posts/16072536) (2认同)