AVAudioPlayerで効果音mp3を連続再生する

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()

効果音連続で鳴らしまくり!良かった。

コメント

タイトルとURLをコピーしました