Android 安卓:如何控制音量:如果音量按钮向上,请查看键盘向上

Android 安卓:如何控制音量:如果音量按钮向上,请查看键盘向上,android,volume,seekbar,Android,Volume,Seekbar,我的搜索栏有以下代码: setVolumeControlStream(AudioManager.STREAM_MUSIC); final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC

我的搜索栏有以下代码:

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是静态的

有什么想法或建议吗


谢谢大家!

您可以通过阅读以下讨论来解决此问题


希望这有帮助。

检查以下答案:

  public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) 
         { 
              mediaVlmSeekBar = (SeekBar) findViewById(R.id.seekBar1);
                int index = mediaVlmSeekBar.getProgress(); 
                mediaVlmSeekBar.setProgress(index + 1); 
                return true; 
         } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
          {
                int index = mediaVlmSeekBar.getProgress(); 
                mediaVlmSeekBar.setProgress(index - 1); 
                return true; 
         }
          return super.onKeyDown(keyCode, event); 
         }