我有一个基本的门铃申请,我正在处理最后几个问题。最后一个问题是振动函数问题。
我有一个if-‘ve语句,它允许手机在布尔值的基础上振动。这工作得很好。
我希望这个功能是禁用的,而电话是播放我的声音。
我认为这需要一个if- with语句来完成,类似于这样:
if(dBell.isPlayingSound()) {
// No vibrate
} else {
Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);
}或者是基于计时器,我设置了更改图片,例如:
if(timer.hasNotExecuted) {
// No vibrate
} else {
Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);
}下面是我当前的if- Here语句,它使振动切换:
if (vibeOn) {
Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);
} else {
// No vibration
}当布尔值为真时,当计时器未完成时(或声音不播放时),我需要使振动切换发生。也许是这样的:
if(vibeOn && timer.hasFinished) {
Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);
} else {
// No vibration
}或
if(vibeOn && dBell.isNotPlaying) {
...差不多吧。我不知道该怎么办。我想我有基本的想法,但我不知道实现它的代码。
帮助!
谢谢!
内森
编辑:
有一些东西要编译:
if (vibeOn && !dBell.isPlaying()) {
Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);
} else {
// No vibration
}这是在单击ImageButton时调用的方法的内部。
当按下按钮时,dBell就会立即启动,所以我不明白为什么!dBell.isPlaying()限制会出现问题。它不断地认为声音是正确的。
我认为这可能发生了,因为我告诉按钮播放声音之前,它检查它是否正在播放。
所以,我把声音按这样的方式播放:
if (vibeOn && !dBell.isPlaying()) {
Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);
} else {
// No vibration
}
dBell.start();这允许声音在第一次播放,但每次之后,它不工作。
找到问题所在了!
我在一个计时器的末尾实现了一个dBell.stop();,导致MediaPlayer中断。我将从这里开始使用MediaPlayer方法,看看什么是可行的。
谢谢你们!
发布于 2015-04-21 22:16:22
取决于您所使用的API中用于播放sound...mediaplayer、音轨或audiomanager...look的是什么
你正朝着正确的方向前进.我会问你的声音是否在播放
https://stackoverflow.com/questions/29784067
复制相似问题