我在使用 AVAudioPlayer 和在 spritekit 游戏中播放短声音时遇到问题。我有相当动态的游戏场景,当用户点击特定元素时,我想播放简单的“嘟嘟”声音,但我注意到使用 AVAudioPlayer 执行声音会导致严重的性能问题。
我的音频文件是 .mp3 格式。
我还尝试过 SKAction 方法(playSoundFileNamed)来执行声音,一切看起来几乎相同,我注意到同样的性能问题。
我的问题是在 SpriteKit 中执行声音的最佳实践是什么。
PS:我试图找到 WWDC Adventure spritekit 示例代码来检查它们如何解决播放声音的问题,但不幸的是示例代码不再可用。
您可能会出现延迟,因为您没有预加载声音文件,因此在创建/播放它们时会出现一些延迟/延迟。最佳实践通常是在应用程序启动时预加载音频文件,以便立即播放。
因此,对于 AVPlayers,只需在应用程序启动时将它们全部设置好,而不是在播放它们之前。当你想播放音乐时,你只需播放 AVPlayer 即可。
myAVPlayer1.play()
关于 SKAction.play...它是同样的问题。您需要创建对操作的引用,而不是直接调用它
因此,在 DidMoveToView 上方的游戏场景中,您创建了声音属性
class GameScene: SKScene {
let sound1 = SKAction.playSoundFileNamed("Test", waitForCompletion: false)
....
}
而不是在你的游戏中在正确的位置运行它
runAction(sound1)
这样就不会有延迟,因为声音已经预加载了。
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)