2012-07-12 32 views
2

我有我的搜索欄下面的代碼:安卓:如何控制音量:如果音量按鈕時,搜索欄了

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

任何想法或建議嗎?

謝謝!

回答

0

檢查以下的答案:

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); 
     }