在 Swift SpriteKit 项目中播放声音?

Posted

技术标签:

【中文标题】在 Swift SpriteKit 项目中播放声音?【英文标题】:Play Sound in Swift SpriteKit project? 【发布时间】:2014-11-06 12:24:54 【问题描述】:

当我运行这段代码时。

runAction(SKAction.playSoundFileNamed("Click.mp3", waitForCompletion: false))

我的应用崩溃了:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“在主包中找不到资源 Click.mp3”

【问题讨论】:

您是否正确添加了 Click.mp3 文件? 注意ios文件系统是区分大小写的,即click.mp3和Click.mp3是指不同的文件 确认您已在代码中正确添加并引用该文件后,清理并构建您的应用程序。 谢谢大家。我只是清理并构建我的应用程序。它奏效了 【参考方案1】:

验证该文件是否存在于项目中。 先实例化文件中的变量,然后再做一个育种方法。

如果项目中存在该文件,您应该执行以下操作:

var sound = SKAction.playSoundFileNamed("sound.mp3", waitForCompletion: false)
...
override func didMoveToView(view: SKView) 
    playSound(sound)
    //call playSound method when you want


func playSound(sound : SKAction)

    runAction(sound)

在这种模式下不会崩溃

【讨论】:

【参考方案2】:

我在过去的一个小时里遇到了这个确切的问题!我不得不走另一条路,因为我尝试了多种方法来让这行简单的代码工作但失败了。代码有点多,但这解决了我的问题:https://***.com/a/24073071/586204。

【讨论】:

以上是关于在 Swift SpriteKit 项目中播放声音?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Sprite Kit 画线时播放声音

斯威夫特:如何延长短音的播放时间

SpriteKit:播放前将声音文件预加载到内存中?

Swift AVAudioPlayer 不播放声音

为啥我的声音让我的游戏在 Swift Spritekit 中滞后?

同时播放相同的声音? (迅速,精灵包)