6

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

从过去的问题中,我被告知

exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 0.1f);

是我希望发送的最终消息,但是正如我所说的,由于所有内容都在类之间拆分,我在引用单个组件时遇到了麻烦。

理想情况下,我希望能够拥有两个带有搜索栏的 exoplayer 实例来控制两者的混合,这就是我的最终目标。

很高兴获得一些反馈或为这个问题指明正确的方向,因此非常感谢任何和所有帮助。非常感谢你们!

4

1 回答 1

6

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,那么只需检查我的答案

于 2017-05-09T10:10:26.643 回答