我希望在" 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",谁做其他事情(更改菜单的索引)。
谢谢
答案 0 :(得分: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;
}
});