2012-04-04 49 views
1

當檢測到「OnLongClickEvent」時,我想在應用程序中降低(或高於)我的媒體音量。用按鈕連續降低我的媒體音量

這裏我的消息來源:

buttongauche.setOnLongClickListener(new OnLongClickListener() { 

      @Override 
      public boolean onLongClick(View v) { 
       playSound(R.raw.volumevoixdiminue); 
       audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,AudioManager.FLAG_SHOW_UI); 
       return true; 
      } 
     }); 

其實,這是工作的:當我做我的「buttongauche」一longClick,體積由1 現在下降,我想知道我怎麼能辦我想連續降低聲音(例如,當按鈕向下時,每2秒鐘將聲音降低1)。

我的按鈕「buttongauche」已經有一個「onClickEvent」,他做了其他事情(改變菜單的索引)。

感謝

回答

2

申報領域boolean touching = false;,說你是否是觸摸按鈕,使用OnTouchListener去改變它。當你開始觸摸也開始volumeThread每1秒降低音量,並在你停止觸摸時死亡。

buttongauche.setOnTouchListener(new View.OnTouchListener() {  

    public boolean onTouch(View v, MotionEvent event) {    
     switch (event.getAction()) {        
     case MotionEvent.ACTION_DOWN:        
      touching = true;          
      Thread volumeThread = new Thread() {     
       public void run() {          
        while (touching) {        
         audio.adjustStreamVolume(     
           AudioManager.STREAM_MUSIC,   
           AudioManager.ADJUST_LOWER,   
           AudioManager.FLAG_SHOW_UI);  
         try {          
          sleep(1000);       
         } catch (InterruptedException e) {   
          e.printStackTrace();     
         }           
        }            
       }             
      };              
      volumeThread.start();         
      break;             
     case MotionEvent.ACTION_UP:         
      touching = false;          
      break;             
     }               
     return false;            
    }                
});