2

SeekBarには次のコードがあります。

setVolumeControlStream(AudioManager.STREAM_MUSIC);

            final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
            int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View layout = inflater.inflate(R.layout.custom_dialog, (ViewGroup) findViewById(R.id.dialog_root_element));


            SeekBar volControl = (SeekBar)alert.findViewById(R.id.dialog_seekbar);

            volControl.setMax(maxVolume);
            volControl.setProgress(curVolume);
            volControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onStopTrackingTouch(SeekBar arg0) {
                }

                @Override
                public void onStartTrackingTouch(SeekBar arg0) {
                }

                @Override
                public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
                    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
                }
            });

問題は、ユーザーがボリューム デバイス ボタンを使用することを決定したときに、SeekBarを上下に動かしたいということです。

実際、このコードを使用すると、両方の方法 (デバイス ボタンとコード) で音量を正しく制御できますが、音量デバイス ボタンを使用すると、SeekBarが静的になります。

アイデアや提案はありますか?

ありがとうございました!

4

2 に答える 2

1

この問題は、次の説明を読むことで解決できます。

Androidで音量の変化を聞くリスナーはありますか?

Android で音量キーを引き継ぐ

お役に立てれば。

于 2012-07-12T09:46:22.693 に答える