如何在SceneKit中播放音乐

时间:2018-08-20 16:27:02

标签: swift scenekit

我曾尝试在我的SceneKit游戏中播放音乐,但由于没有理由而崩溃。 因此,我尝试将这三行代码添加到标准Apple游戏模板中(在viewDidLoad的末尾):

let music = SCNAudioSource(fileNamed: "Music.mp3")
let action = SCNAction.playAudio(music!, waitForCompletion: false)
ship.runAction(action)

,并且在运行时,Xcode向我显示以下消息:     com.apple.scenekit.scnview-renderer(8):断点1.2

我的错误在哪里?

我试图在两个不同的Mac上编译和运行我的代码:在MacBookPro Retina上,声音运行正常,在iMac 21,5中,它崩溃了。 因此,我的代码是正确的,可能我会给苹果公司一个雷达。 请注意,两台Mac均都安装了OS Mojave(测试版)(相同版本),并且使用的Xcode是Beta。

2 个答案:

答案 0 :(得分:1)

您必须将音频文件放入SCNAssets目录(扩展名为.scnassets),就像模板中的art.scnassets目录一样。然后播放这样的音乐:

if let source = SCNAudioSource(fileNamed: "art.scnassets/Music.mp3") {
    let action = SCNAction.playAudio(source, waitForCompletion: false)
    ship.runAction(action)
} else {
    print("cannot find file")
}

答案 1 :(得分:-1)

我认为您正在寻找类似的东西...

ship.runAction(SKAction.playSoundFileNamed("Music.mp3",waitForCompletion:false));