gpt4 book ai didi

ios - 使用 fileNamed 初始化 SKAudioNode 返回 nil

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:36 25 4
gpt4 key购买 nike

这是我第一次使用 SKAudioNode。首先,我在 GameScene 类的顶部声明了一个属性:

var backgroundMusic: SKAudioNode!

现在我添加了一个辅助方法:

func playBackgroundMusic(name: String) {
if backgroundMusic != nil {
backgroundMusic.removeFromParent()
}

backgroundMusic = SKAudioNode(fileNamed: name)
backgroundMusic.autoplayLooped = true
addChild(backgroundMusic)
}

现在我这样调用这个方法:

playBackgroundMusic("ABC.caf")

它在这一行抛出一个 fatal error :

backgroundMusic.autoplayLooped = true

说:在展开可选值时意外发现 nil。

我确实确保了以下内容

  • ABC.caf 在我的项目中,并在复制包资源中列出。
  • 拼写正确。

现在我还应该在哪里检查错误?

编辑:

这是我的配置信息:

  • Xcode 7.3
  • 装有 iOS 9.3.2 的 iPhone
  • iOS 9.3 模拟器

设备和模拟器都不工作。

编辑 2:

我将代码更改为以下内容:

func playBackgroundMusic(name: String) {
if backgroundMusic != nil {
backgroundMusic.removeFromParent()
}

let temp = SKAudioNode(fileNamed: name)
temp.autoplayLooped = true
backgroundMusic = temp
//backgroundMusic = SKAudioNode(fileNamed: "SpaceGame.caf")
//backgroundMusic.autoplayLooped = true
addChild(backgroundMusic)
}

现在我的应用程序不再崩溃,但没有声音。有什么想法吗?

附言在我最后一次编辑该问题几分钟后,我尝试将该方法中的所有内容替换为:

runAction(SKAction.playSoundFileNamed(name, waitForCompletion: false))

还是没有声音。也许声音文件有问题?

最佳答案

我刚遇到这个问题。显然,它现在只适用于局部变量。以下代码有效。

var background:SKAudioNode!

override func didMoveToView(view: SKView) {
let bg = SKAudioNode(fileNamed: "bg.mp3")
addChild(bg)
background = bg
}

关于ios - 使用 fileNamed 初始化 SKAudioNode 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518725/

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