Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you add background music to SpriteKit?

I tried doing this:

let soundFilePath = NSBundle.mainBundle().pathForResource("GL006_SNES_Victory_loop.aif", ofType: "GL006_SNES_Victory_loop.aif")
let soundFileURL = NSURL(fileURLWithPath: soundFilePath!)
let player = AVAudioPlayer(contentsOfURL: soundFileURL, fileTypeHint: nil)
player.numberOfLoops = -1 //infinite
player.play()

I put this code in the didMoveToView function, and I have import AVFoundation at the top of my code. I get the error: Call can throw, but it is not marked with 'try' and the error is not handled.

Thank you in advance!

like image 722
Raxzon Avatar asked Jan 07 '23 19:01

Raxzon


1 Answers

(Xcode 8 and Swift 3)

Using SpriteKit this is pretty simple. You create an SKAudioNote with a sound file and then you attach it to your Scene as a child. It will loop by default:

override func didMove(to view: SKView) {
    let backgroundSound = SKAudioNode(fileNamed: "bg.mp3")
    self.addChild(backgroundSound)
}

If you want to stop the background music at some point you can use the build in methods:

    backgroundSound.run(SKAction.stop())

Or maybe you want to play the sound again after stopping it:

    backgroundSound.run(SKAction.play())

SpriteKit makes this really simple. I hope this helps you.

like image 61
Alexander Luna Avatar answered Jan 10 '23 10:01

Alexander Luna