AVAudioPlayerを使ってmp3の効果音を鳴らすところまでは簡単にいけたが、効果音が鳴るボタンを連続で押した時に、最初になった音が終わらないと次の音が鳴らない状況になった。
そこで色々調べた結果、以下のようにすれば大丈夫になった。
// viewDidLoadとかでAVAudioPlayerの準備をする
let filePath = Bundle.main.path(forResource: "sample", ofType: "mp3")
let audioPath = URL(fileURLWithPath: filePath!)
self.sampleAudio = try? AVAudioPlayer(contentsOf: audioPath)
self.sampleAudio?.prepareToPlay()
// ボタンを押した中で再生する処理
if (self.sampleAudio?.isPlaying)! {
self.sampleAudio?.stop()
self.sampleAudio?.currentTime = 0 // ←重要なのはこれ!
}
self.sampleAudio?.play()
効果音連続で鳴らしまくり!良かった。
コメント