Jua*_*nik 11
不幸的是,@ KnightOfDragon所说的不正确(但我没有足够的声誉来评论).
SKAudioNode已经在iOS 9中引入并且意味着SKAction.playSoundFileNamed(...)它可以替代它,因为它功能更强大(您可以将它作为子项添加到SpriteKit中SKNode,如果属性positional设置为true,则会自动添加3D音频混合).
要SKAudioNode使用以下代码播放声音一次:
if #available(iOS 9, *) {
let pling = SKAudioNode(fileNamed: "pling.wav")
// this is important (or else the scene starts to play the sound in
// an infinite loop right after adding the node to the scene).
pling.autoplayLooped = false
someNode.addChild(pling)
someNode.runAction(SKAction.sequence([
SKAction.waitForDuration(0.5),
SKAction.runBlock {
// this will start playing the pling once.
pling.runAction(SKAction.play())
}
])
}
else {
// do it the old way
}
Run Code Online (Sandbox Code Playgroud)
看看这里,如何在音频节点上使用Actions:SKAction-> Audio-Stuff.文件说:
使用SKAction playSoundFileNamed:waitForCompletion:仅用于短期杂费.使用AVAudioPlayer可以长时间播放背景音乐.
但这并不意味着,一个SKAudioNode不应使用一次性音频.用playSoundFileNamed你无法改变音量或暂停/停止播放等.
如果您正在尝试制作声音效果,请SKAction.playSoundFileNamed(...)在创建效果的精灵上使用。SKAudioNode 更适合在游戏中播放音乐
例子:
//we have ship as an SKSpriteNode
//lets fire laser
ship.runAction(SKAction.playSoundFileNamed("pewpewpew.caf",waitForCompletion:false));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5542 次 |
| 最近记录: |