3年ほど前に作ったアプリを久しぶりにちょこちょこといじっていたら、音声を再生する箇所で音声が再生されなくなっていました。
コードは一切変えておらず、APIの仕様が変わったのかなと思って別のプロジェクトを作りAVAudioPlayerをテストしてみました。
2018/12/5に更新されたこちらのサイトを参考に以下のようにコードを組んでみました。
swift
1class ViewController: UIViewController, AVAudioPlayerDelegate { 2 3 var audioPlayer: AVAudioPlayer? 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 9 // 再生する audio ファイルのパスを取得 10 let audioPath = Bundle.main.path(forResource: "bubble", ofType:"mp3")! 11 let audioUrl = URL(fileURLWithPath: audioPath) 12 13 // auido を再生するプレイヤーを作成する 14 var audioError:NSError? 15 do { 16 audioPlayer = try AVAudioPlayer(contentsOf: audioUrl) 17 } catch let error as NSError { 18 audioError = error 19 audioPlayer = nil 20 } 21 22 // エラーが起きたとき 23 if let error = audioError { 24 print("Error (error.localizedDescription)") 25 } 26 27 audioPlayer?.delegate = self 28 audioPlayer?.prepareToPlay() 29 } 30 31 @IBAction func tappedButton(_ sender: Any) { 32 audioPlayer?.play() 33 } 34 35 // 音楽再生が成功した時に呼ばれるメソッド 36 func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { 37 print("音終了") 38 } 39 40 // デコード中にエラーが起きた時に呼ばれるメソッド 41 func audioPlayerDecodeErrorDidOccur(_ player: AVAudioPlayer, error: Error?) { 42 print("デコードエラー") 43 } 44 45}
しかし音声は再生されませんでした。
上記コードではコンソールにエラーは表示されず、audioPlayerDidFinishPlayingが呼ばれて音声が再生されているような処理になっています。
また、iPhoneの音量ボタンを押して確認しても十分な音量はありました。
プロジェクトの構造は以下の画像のようになっています。
なぜ音声が再生されないのか全く分からないのですが、どうすれば再生されるようになるでしょうか。
他に何か思い当たる箇所はあるでしょうか。
どなたか分かる方がいれば教えていただきたいです。
よろしくお願いします。
回答1件