Java 用按钮持续降低媒体音量

Java 用按钮持续降低媒体音量,java,android,events,button,listener,Java,Android,Events,Button,Listener,当检测到“OnLongClickEvent”时,我想降低(或提高)应用程序中的媒体音量 以下是我的资料来源: buttongauche.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { playSound(R.raw.volumevoixdiminue);

当检测到“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”时,音量会减少1。 现在我想知道,如果我想连续降低声音(例如,当按钮按下时,每2秒降低1声),我该怎么做

我的按钮“buttongauche”已经有一个“onClickEvent”,它可以做其他事情(更改菜单的索引)


谢谢

声明字段
布尔触摸=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;                                              
    }                                                              
});