我正在制作一个基本的游戏,我正试图为它制作点击声。在Rhythmic Fistman的帮助下,我让他们在不同的球场上比赛,但是现在我遇到了一个新问题 - 如果我试着很快就打它们就会落后。这可能看起来不是一个大问题,但在我正在开发的游戏中,每当你移动你的手指时它就有可能发出一声撞击声,所以它会很快变得迟钝,尤其是多点触控时。
目前我在AVAudioEngine中有两个通道用于两个通道,所以我可以同时播放两个hitsounds,而我正在使用它来停止其中一个节点,以便它可以发出新的声音:
if playerNode.isPlaying {
playerNode.stop()
playerNode.play()
}
playerNode.scheduleFile(file, at: nil, completionHandler: nil)
这个问题是isPlaying总是返回true,无论声音是否实际播放,因为如果你执行playerNode.stop()它似乎只返回false,并且由于某种原因它实际上是非常滞后的,实际上一个接一个地演奏大量的曲目并不那么迟钝。
我认为一个简单的解决方案是重置节点,而不是播放hitsound,但是因为isPlaying总是返回true,所以我不能这样做。有没有更快的方法让音频节点播放声音?
答案 0 :(得分:0)
似乎scheduleBuffer毕竟是我需要的