我想在检测到“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”,它可以做其他事情(更改菜单的索引)。
谢谢
最佳答案
声明字段 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;
}
});
关于java - 用一个按钮连续降低我的媒体音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10014295/