如何在 SpriteKit 中为游戏添加音乐

Posted

技术标签:

【中文标题】如何在 SpriteKit 中为游戏添加音乐【英文标题】:How to add music to a game in SpriteKit 【发布时间】:2017-05-21 21:44:30 【问题描述】:

我在尝试为游戏添加声音时遇到了问题。我在下面添加了这个到视图控制器,当我构建和运行时,我会得到一个错误。当我运行下面的代码时:

var interstitialAd : GADInterstitial!
var player: AVAudioPlayer!

override func viewDidLoad() 
    super.viewDidLoad()

    let path = Bundle.main.path(forResource: "gameMusic.mp3", ofType:"mp3")!
    let url = URL(fileURLWithPath: path)

    do 
        let sound = try AVAudioPlayer(contentsOf: url)
        player = sound
        sound.play()
     catch 
        print("file not found")
    




    if let view = self.view as! SKView? 
        // Load the SKScene from 'GameScene.sks'

我收到以下错误:

致命错误:在展开可选值时意外发现 nil 2017-05-21 17:35:01.262683 gameTest2 [1660:363851] 致命错误: 解包 Optional 值时意外发现 nil

谁能帮忙?

【问题讨论】:

从资源名称中删除.mp3 【参考方案1】:

当你使用Bundle.main.path(forResource:,ofType:) 时,第一部分应该是资源的名称,第二部分应该是它的类型。这意味着您的代码应该是:

let path = Bundle.main.path(forResource: "gameMusic", ofType:"mp3")!

【讨论】:

哦,好的,我继续尝试,这次没有错误,但是我构建并运行它时没有音乐播放,您认为这是怎么回事? @JR_22 不知道,但您可能想坚持使用 SpriteKit 并改用 SKAudioNode。

以上是关于如何在 SpriteKit 中为游戏添加音乐的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SpriteKit / Objective C 中添加“静音”按钮?

如何在andengine中为游戏场景添加背景音乐

Spritekit 在游戏时保留 iPhone 音乐

使用 spritekit swift 在 swift 中为游戏创建主菜单

Swift / Spritekit:通过特定场景播放音乐

在 SpriteKit 中为弹跳球创建音效