現在こちらの質問を参考に、2つの音声ファイルを連続で再生する機能を実装しました。
Teratail - Swift で複数ののオーディオファイルを連続で再生する方法
Swift
1 var player1: AVAudioPlayer! 2 var player2: AVAudioPlayer! 3 4 let url1 = Bundle.main.bundleURL.appendingPathComponent("test_01.mp3") 5 let url2 = Bundle.main.bundleURL.appendingPathComponent("test_02.mp3") 6 7func playerA(url1: URL, url2: URL) { 8 do { 9 try player1 = AVAudioPlayer(contentsOf: url1) 10 try player2 = AVAudioPlayer(contentsOf: url2) 11 12 player1.prepareToPlay() 13 player1.delegate = self 14 15 player1.play() 16 17 } catch { 18 print(error) 19 } 20 } 21 22func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { 23 player2.play() 24 } 25 26@IBAction func startBtn(_ sender: UIButton) { 27 playerA(url1: url1, url2: url2) 28 } 29
ここから実装したいのが、以下の2つの機能です。
0. 3つ以上の音声ファイルの連続再生
0. それぞれの音声の終了検知
1.だけならAVQueueplayerを用いて実装する方法は分かりましたが、AVQueueplayerについて調べると、個々の音声ファイル再生の終了検知の方法を見つけることができませんでした。
また2.だけなら現在のコードで検知することができますが、この方法で3つ以上の音声ファイルを連続再生する方法を見つけることができませんでした。
そこでこれらの機能について、
- AVQueueplayerを用いて、音声ファイル再生の終了を検知する方法
- 現在のコードを用いて、3つ以上の音声ファイルの連続再生を行う方法
- 上記2つのどちらとも異なる方法
のいずれかを教えていただければと思います。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。