2018年1月31日水曜日

AVAudioPlayerで効果音を連続再生

やりたいこと

ボタンを押すたびにピコーンというSEを鳴らすのだが、高速で連続してボタンを押した場合に音が鳴らないことがある。

解決法

音を重ねて鳴らす場合はAVAudioPlayerをしまうプロパティを配列に入れ、再生が終わるまで保持するなどすればいい。(終わったのを消すのがSwiftではちょっと面倒になったけど)

重ねて鳴らさなくていいならば、前の音が再生中なら音を止め、再生ポイント(currentTime)を先頭に戻してやればいい。

具体的には以下のように。

if correctSound.isPlaying {
      correctSound.stop()
}
correctSound.currentTime = 0
correctSound.play()

0 件のコメント:

コメントを投稿