2012-04-04 22 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;            
    }                
});