首页 > 解决方案 > 如何在 SceneKit 中播放音乐

问题描述

我试图在我的 SceneKit 游戏中播放音乐,但它无缘无故地崩溃了。所以我尝试在标准的 Apple 游戏模板中添加这 3 行代码(在 viewDidLoad 的末尾):

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

并且,在运行时,Xcode 向我显示这条消息:com.apple.scenekit.scnview-renderer (8): breakpoint 1.2

我的错误在哪里?

我试图在两台不同的 Mac 上编译和运行我的代码:在我的 MacBookPro Retina 上它运行正常,在我的 iMac 21,5 上它崩溃了。所以,我的代码是正确的,可能我会向 Apple 填充雷达。请注意,两台 Mac 都安装了测试版(相同版本)的 OS Mojave,并且使用的 Xcode 也是测试版。

标签: swiftscenekit

解决方案


您必须将音频文件放入 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")
}

推荐阅读