【发布时间】:2015-12-18 13:18:02
【问题描述】:
我正在使用以下代码在我的 Swift SpriteKit 游戏中播放音效。
func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer {
let path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
let url = NSURL.fileURLWithPath(path!)
var audioPlayer:AVAudioPlayer?
do {
try audioPlayer = AVAudioPlayer(contentsOfURL: url)
} catch {
print("NO AUDIO PLAYER")
}
return audioPlayer!
}
音效的持续时间是一秒,我每次以 0.5 秒的间隔创建一个精灵时调用它。由于音效比创建间隔长,所以音效只播放一次。我相信减少效果持续时间可以解决这个问题,尽管我对解决我的问题的其他方法持开放态度。
【问题讨论】:
-
如果你需要这首歌在其他地方有秒,那么我的问题是你想如何播放声音,超快或只有一半的声音。如果声音只有 0.5 秒的剪辑,那么我会进入 iTunes 并创建一个 0.5 秒的剪辑
-
我希望播放速度更快,半秒内
-
那么我建议切换到使用带有 SKAction 的 SKNode 子节点,并使用 SKAction.playSoundWithFileNamed 播放声音,然后以 2 倍的速度运行(当然,除非这个声音总是以 2 倍的速度播放,那么我会预先生成 2x 版本并将节点保持在 1x)如果这是您想要采取的路线,我会做出解释说明这一点的答案
-
尝试使用SKAction.playSoundWithFileNamed每间隔int需要播放,并在update()函数中控制时间间隔。
标签: sprite-kit swift2 avaudioplayer