2012-07-12 2 views
2

나는이 내 SeekBar를 다음 코드 :안드로이드 : 볼륨을 조절하는 방법 : 경우 볼륨 버튼을 위로, 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 위아래도 있습니다.

실제로이 I 코드는 정확하게 두 방법 (장치 버튼 및 코드)와 음량을 제어 할 수 있지만, I는 볼륨 장치 단추를 사용하면, 내 검색 막대 정적이다.

의견이나 제안이 있으십니까?

감사합니다.

답변

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); 
     } 
관련 문제