2016-10-21 3 views
0

私のオーディオプレーヤーに問題があります。私のviewcontrollerを起動すると、URLにnillが与えられ、これがどうなるかわからない。私はデバッグして問題を探すように試みたが、何が起こっているのか分からない。AVAudioPlayerがパスにnillを与えます。Swift 3 xcode 8.0

// VARS AUDIO 
    var sfxFive: AVAudioPlayer! 
    var sfxFour: AVAudioPlayer! 
    var sfxThree: AVAudioPlayer! 
    var sfxtwo: AVAudioPlayer! 
    var sfxOne: AVAudioPlayer! 
    var sfxGo: AVAudioPlayer! 

override func viewDidLoad() { 
     super.viewDidLoad() 

     do { 

      let resourcePathFive = Bundle.main.path(forResource: "five", ofType: "m4a")! 
      let urlFive = URL(fileURLWithPath: resourcePathFive) 
      try sfxFive = AVAudioPlayer(contentsOf: urlFive) 

      let resourcePathFour = Bundle.main.path(forResource: "four", ofType: "m4a")! 
      let urlFour = URL(fileURLWithPath: resourcePathFour) 
      try sfxFour = AVAudioPlayer(contentsOf: urlFour) 

      let resourcePathThree = Bundle.main.path(forResource: "three", ofType: "m4a")! 
      let urlThree = URL(fileURLWithPath: resourcePathThree) 
      try sfxThree = AVAudioPlayer(contentsOf: urlThree) 

      let resourcePathTwo = Bundle.main.path(forResource: "two", ofType: "m4a")! 
      let urlTwo = URL(fileURLWithPath: resourcePathTwo) 
      try sfxtwo = AVAudioPlayer(contentsOf: urlTwo) 

      let resourcePathOne = Bundle.main.path(forResource: "one", ofType: "m4a")! 
      let urlOne = URL(fileURLWithPath: resourcePathOne) 
      try sfxOne = AVAudioPlayer(contentsOf: urlOne) 

      let resourcePathGo = Bundle.main.path(forResource: "go", ofType: "m4a")! 
      let urlGo = URL(fileURLWithPath: resourcePathGo) 
      try sfxGo = AVAudioPlayer(contentsOf: urlGo) 

      sfxFive.prepareToPlay() 
      sfxFour.prepareToPlay() 
      sfxThree.prepareToPlay() 
      sfxtwo.prepareToPlay() 
      sfxOne.prepareToPlay() 
      sfxGo.prepareToPlay() 

     } catch let err as NSError { 
      print(err.debugDescription) 
     } 
} 


func timerRunning() { 

     if timeElapsed == 5 { 
      sfxFive.play() 
     }else if timeElapsed == 4 { 
      sfxFour.play() 
     }else if timeElapsed == 3 { 
      sfxThree.play() 
     }else if timeElapsed == 2 { 
      sfxtwo.play() 
     }else if timeElapsed == 1 { 
      sfxOne.play() 
     }else if timeElapsed == 0 { 
      sfxGo.play() 
     } 
} 

オーディオファイルはルートディレクトリに配置されています。ここでは

はコードです。

誰も問題を見ていませんか?

親切、 ケビン。

+1

ターゲットのビルドフェーズを確認します。m4aファイルが[バンドルリソースのフェーズグループのコピー]にリストされていない場合は追加し、次にクリーンアップし、再度実行します。 – Wolverine

+0

このマップの下には、m4aファイルはありません –

+0

そのグループに追加します。プロジェクトをクリーンアップし、再度実行します。 – Wolverine

答えて

1

yourProject -> Target's Buildを確認してください。コピーバンドルリソースフェーズグループで、m4aファイルがリストにない場合は、そのグループに追加してください。

プロジェクトをクリーンアップし、再度実行してください。

関連する問題