0
我有0.2秒長的聲音文件「beep.caf」,我試圖快速播放。如果我將聲音設置爲間隔1秒,他們可以很好地演奏,但如果我將它們設置爲0.8以下,只會播放第一個聲音。我也有使用AudioServicesPlaySystemSound的相同問題。AVAudioPlayer聲音不會在1秒以內播放
要播放聲音兩次迅速,我有以下功能:
func runAfterDelay(delay: NSTimeInterval, block: dispatch_block_t) {
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay * Double(NSEC_PER_SEC)))
dispatch_after(time, dispatch_get_main_queue(), block)
}
我第一次設置我的聲音在viewDidLoad中有以下內容:
let path = NSBundle.mainBundle().pathForResource("beep", ofType: "caf")!
let url = NSURL(fileURLWithPath: path)
do{
self.startBeep = try AVAudioPlayer(contentsOfURL: url)
self.startBeep.prepareToPlay()
}catch{
print("Audio didn't load")
}
然後,當一個按鈕被按下以下代碼運行:
let start_time:Double = 1.0
let end_time:Double = start_time + 0.8
runAfterDelay(start_time) {
self.startBeep.play()
}
runAfterDelay(end_time) {
self.startBeep.play()
}
我試圖在下一個pl之前停止聲音唉,但這也沒有幫助。我甚至已經複製了應該文件(嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶嗶〜),看它是否與播放同一個聲音文件有關,並且我也遇到了同樣的問題。
任何想法??
是的,如何使用使用車庫樂隊創建一個更大的聲音,你玩一秒鐘。 :) – user3069232
我不知道這將如何幫助。我會補充說,開始蜂鳴聲和結束蜂鳴聲之間的時間由用戶操作定義,並且可能低至0.5秒。 –
也許我錯了,你確定beep.caf只有0.2秒長。你可以放入一個觸發器來檢測遊戲完成情況,並且可能將整個事件計時? – user3069232