我正在製作一款基本遊戲,我正在嘗試爲它製作打擊聲。在Rhythmic Fistman的幫助下,我讓他們以不同的方式進行比賽,但是現在我遇到了一個新問題 - 如果我儘快地嘗試打法,我會遇到一些新問題。這似乎不是一個大問題,但在我正在開發的遊戲中,無論何時移動手指,都有可能產生撞擊聲,因此速度會非常快,特別是使用多點觸控。Swift 3:在AVAudioPlayerNode上快速播放聲音
目前我有兩個通道的兩個節點在AVAudioEngine所以我可以一次打兩個hitsounds,和我用這個來阻止這些節點之一,所以它可以起到一個新的聲音:
if playerNode.isPlaying {
playerNode.stop()
playerNode.play()
}
playerNode.scheduleFile(file, at: nil, completionHandler: nil)
問題在於,無論聲音是否真的在播放,isPlaying總是返回true,因爲它似乎只在播放playerNode.stop()時才返回false,並且由於某種原因它非常滯後,實際上它很少一個接一個地玩一大堆hitsounds。
我認爲一個簡單的解決方案,而不是重置節點,只是不播放hitsound,但由於isPlaying總是返回true我不能這樣做。有沒有更快的方法讓音頻節點播放聲音?
好吧,我嘗試使用scheduleBuffer不是與.interrupts作爲選項,它似乎有(奇怪)的工作,但我會離開這個崗位開放的另一天在我正在做一些可怕的事情 – MysteryPancake