空回り日記

swiftなどのプログラミングの情報を書いてます。

【swift】 SpriteKitで効果音やBGMを鳴らす

swiftのSpriteKitというゲームフレームワークを使って効果音やBGMをならします。

iOSのバージョンで音のならし方が違います。

iOS 9.0以上の場合

SKAudioNodeが使えます。

//音楽ファイルをbackmusic.mp3とした場合
let music = SKAudioNode.init(fileNamed: "backmusic.mp3")
self.addChild(music)

iOS 9.0未満の場合

SKAudioNodeが使えないためSKActionを使ってループさせます。

//音楽ファイルをbackmusic.mp3とした場合
let music = SKAction.playSoundFileNamed("backmusic.mp3", waitForCompletion: true)
let repeatmusic = SKAction.repeatAction(music, count: 10000)
self.runAction(repeatmusic)

どっちでも対応したい場合

iOSのバージョンを取得して対応します

if #available(iOS 9.0, *) {
    let music = SKAudioNode.init(fileNamed: "backmusic.mp3")
    self.addChild(music)
} else {
    // 9.0より下のバージョンの時
    let music = SKAction.playSoundFileNamed("backmusic.mp3", waitForCompletion: true)
    let repeatmusic = SKAction.repeatAction(music, count: 10000)
    self.runAction(repeatmusic)
}

SKAudioNodeは簡単に使えますが、まだiOS 9.0未満も多いのでSKActionも必要そうです。
以上です。