我有一个基本的门铃应用程序,我正在解决最后几个问题。我最后一个是振动功能问题。
我有一个if-else语句,允许手机根据布尔值振动。这非常有效。
我希望在手机播放我的声音时禁用此功能。
我认为这将使用if-else语句完成,如下所示:
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-else语句,它使振动切换:
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方法,看看哪些方法有效。
谢谢你们!
答案 0 :(得分:0)
取决于您播放声音的用途...媒体播放器,录音机或听力管理员...查看您正在使用的课程的API
你正朝着正确的方向前进......我会采取询问是否正在播放歌曲的方法