gpt4 book ai didi

ios - SCNAction.playAudio 在节点取消初始化时导致崩溃

转载 作者:搜寻专家 更新时间:2023-10-30 23:05:08 27 4
gpt4 key购买 nike

我们将崩溃的原因确定为在我们的游戏中使用 SCNAction.playAudio 的声明。如果在我们的游戏中调用了任何 playAudio 语句,则 SCNScene/SCNView 的取消初始化稍后会随机触发此崩溃:

enter image description here

我们如何播放音频:

func playAudioSource(from node: SCNNode, source audioSource: SCNAudioSource) {
node.runAction(SCNAction.playAudio(audioSource, waitForCompletion: false))
}

它显示 EXC_BAD_ACCESS 位于 CPP3DAudioEngine::RemoveContext。我们正在使用 SceneKit 和 Swift 3 为 iOS 10.3 开发。

最佳答案

您应该提供更多代码以更好地了解您的游戏中发生的事情,但您肯定可以通过以下方式更正您的功能:

func playAudioSource(from node: SCNNode, source audioSource: SCNAudioSource) {
if let _ = node.parent, node.action(forKey: "playAudio") == nil {
node.runAction(SCNAction.playAudio(audioSource, waitForCompletion: false),forKey:"playAudio")
}
}

这可以防止在操作已经启动或正在执行时启动操作,并检查您的节点是否已经附加到它的父节点(这可能很有用,它取决于您从何处启动此代码..)

关于ios - SCNAction.playAudio 在节点取消初始化时导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43395236/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com