Erik Martin
Erik Martin

Reputation: 119

SpriteKit not playing audio file?

I have made a custom class, SoundNode, to handle the playing of audio files. For now, it only plays the default "A2.mp3"

class SoundNode : SKSpriteNode{
func playSound(){
    run(SKAction.playSoundFileNamed("A2", waitForCompletion: false))
    }
}

I then call the playSound method in my SKScene like so:

SoundNode().playSound()

But, the sound never plays?? I have made sure the file exists within my project and have also double checked the file name to make sure it is correct. What is the problem here?

Upvotes: -1

Views: 341

Answers (1)

Sweeper
Sweeper

Reputation: 271915

SoundNode is a kind of node. Every node only works when it is in a scene. Just creating a SoundNode and calling playSound does not do anything because the node has not been added to the scene!

To make this work, just add it to the scene:

let node = SoundNode()
self.addChild(node)
node.playSound()

Also, I suggest that SoundNode should not inherit SKSpriteNode because it is obviously not a sprite i.e. something that can be seen on screen. Just make it inherit SKNode.

Upvotes: 2

Related Questions