1

SpriteKit シーンがロードされたときにバックグラウンドでオーディオ ファイルを再生するという単純なタスクに苦労していました。

「Test Song.wav」という名前のオーディオ ファイルをプロジェクトにコピーしました。「Build Phases」>「Copy Bundle Resources」の下を見ると、アセットにも見つかりました (これは、この投稿で確認するように提案されたものでした)。

私のコードは問題なくコンパイルされ、リング/サイレント スイッチは正しくリングに切り替えられましたが、シーンがロードされたときにオーディオが再生されませんでした。

私は使用しています

  • Xcode バージョン 8.0 ベータ版
  • iOS 10 Beta 1 を実行している iPhone 6S Plus

これが私の壊れたコードです:

import AVFoundation

class GameScene: SKScene {

    override func didMove(to view: SKView) {

        if let path = Bundle.main().pathForResource("Test Song", ofType: "wav") {

        let filePath = NSURL(fileURLWithPath:path)

        let songPlayer = try! AVAudioPlayer.init(contentsOf: filePath as URL)

        songPlayer.numberOfLoops = 0

        songPlayer.prepareToPlay()

        songPlayer.play()

        }
    }
}

注: Swift 3.0 では、AVAudioPlayer の init() メソッドが NSError パラメータを受け入れなくなったため、このコードはコンパイルされません。

var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
4

1 に答える 1