0

我正在尝试控制媒体音量

但总是在关闭对话框后自动设置为零。

代码 :

         DialogPreference dp = (DialogPreference)findPreference("mediavolume");
         dp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

             public boolean onPreferenceChange(Preference preference, Object newValue) {
             SeekBar volumeBar = (SeekBar)findViewById(R.id.seekbar);
             final AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);  


             volumeBar.setMax(manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
             volumeBar.setProgress( manager.getStreamVolume(AudioManager.STREAM_MUSIC));

             volumeBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

                public void onStopTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub

                }

                public void onStartTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub

                }

                public void onProgressChanged(SeekBar seekBar, int progress,
                        boolean fromUser) {
                     manager.setStreamVolume(AudioManager.STREAM_MUSIC, progress,manager.FLAG_PLAY_SOUND);


                }
            });

                return false;
            }
        });
4

1 回答 1

0

我不完全确定您要在这里做什么。您拥有所有重要的部分,volumebar.setMax()volumebar.setProgress()OnSeekBarChangeListener,但是您是否打算将其放入整个对话的更改侦听器中?除非对话框本身被更改,否则此侦听器将返回 false。

于 2012-02-18T02:30:04.847 回答