所以我每隔0.1秒运行一次NSTimer函数。
无论有多少条件和&警告我把它放到位,这个声音(以及定时器上的其他声音)播放两次。触摸触发的相同声音只播放一次。
myTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("flip:"), userInfo: nil, repeats: true)
这是它触发的功能。
func flip(timer: NSTimer) {
if current_timer == -3.0 && rang_3 == false {
if rang_3 == false {
rang_3 = true
dialed_3()
NSLog("DIALED 3")
}
}
}
这是我需要仅触发ONCE的声音功能。
func dialed_3() {
if sound_mute == false {
do {
dial_3 = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("3", ofType: "mp3")!))
dial_3.volume = 2
dial_3.numberOfLoops = 0
dial_3.prepareToPlay()
dial_3.play()
} catch {
print("Error")
}
}
}
答案 0 :(得分:0)
我不知道你的其他代码,但是你展示的是它,它会运行一次。 给你一个小建议:将初始化移动到全局,而不是每次运行计时器都运行它。
答案 1 :(得分:0)
好的!因此,我将!rang_3
支票移至固定!sound_mute
支票&有效。作为故障保护,我复制了倒计时期间使用的声音。 1场比赛后将他们静音。因此,如果他们玩了两次,用户就不会注意到。
if !sound_mute && !rang_3 {
do {
//soundstuff
}
}