6

シークバーを使用してプロジェクトで DASH をストリーミングしている Exoplayer インスタンスの音量を制御しようとしています。私が直面している問題は、レンダラーとプレーヤーがデモ プロジェクトのクラス間で分割されていることです。現在、私の 3 つの主なクラスは、DashRendererBuilder と Player および Player アクティビティです。Player アクティビティにシークバーがあり、Exoplayer のボリュームを制御するために、PlayerActivity 内で必要なプレーヤーとレンダラーを参照する方法を考えています。

過去の質問でわかったのは、

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

送信しようとしている最終メッセージですが、すべてがクラス間で分割されているため、個々のコンポーネントの参照に問題があると述べました。

理想的には、2 つの exoplayer インスタンスを 2 つのミックスを制御するシークバーで持つことができるようにしたいので、それが私の最終目標です。

フィードバックを得るか、この問題の正しい方向性を指摘していただけると大変助かります。どうもありがとうございました!

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

            }
        });

ハードウェアの音量アップ/ダウン キー + シークバーを処理したい場合は、私の回答を確認してください。

于 2017-05-09T10:10:26.643 に答える