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()、ダイアログ全体の変更リスナーに配置するつもりでしたか?ダイアログ自体が変更されない限り、このリスナーはfalseを返します。volumebar.setProgress()OnSeekBarChangeListener

于 2012-02-18T02:30:04.847 に答える