我正在制作一个音乐游戏,当用户按下一个音符时,它会发出声音。当用户按下时,声音自然需要立即播放,以便他们可以判断他们是否与音乐合拍。但是,感觉好像声音滞后了,尤其是当按下音符变得更快时。
我的背景 .m4a 音乐文件是用 AVAudioPlayer 播放的。我选择在 Cocos Denshion 上使用它,因为我可以访问 currentTime 属性。我可能错了,但我不认为我可以使用 CocosDenshion 访问它。
我制作了一个非常短(不到一秒)的 .wav 文件。我在init上预加载了我的音效:
[[SimpleAudioEngine sharedEngine] preloadEffect:@"Assist.wav"];
然后播放音效,在 CCTouchesBegan 中我调用:
[[SimpleAudioEngine sharedEngine] playEffect:@"Assist.wav"];
之后,它调用我的代码来确定用户的时间和奖励积分。知道为什么它可能会滞后,或者是一种更好的方式来与音乐同步播放音效吗?
编辑:我最近尝试了一些事情但没有结果。首先,我尝试在歌曲中出现适当的时间时自动播放声音。仍然有滞后,所以我不认为这是触摸事件缓慢。我还尝试了 3 个不同的声音库。
但是,当我在模拟器中运行时,它似乎并不卡顿。有人有想法吗?我一无所知,这是我无法真正取出的主要功能......