AVAudioPlayerで再生について

iOSで音の再生に使うとき、以下の2つの方法がある。まだあるけど、簡単なのが以下。

  • System Sound Service
  • AVFoundation

System Sound Serviceこっちだと音がヘッドフォンからでないし、iPad2でApple TVのミラーリング使ったときに、音声が本体から出てきます。せっかくTVにつないでいるのに。

ということで、音の再生は、AVFoundationがお勧めです。

使い方は、適当に[AVAudioPlayer]で検索してもらえれば、けっこう出ます出ます。

で、ちょっとしたポイントをご紹介。

AVAudioPlayer *sndとしているとして、

[snd play]とすれば、再生ですが、
事前に
[snd prepareToPlay]
とすれば、音が途切れないとありますが、

5秒程度の短い音だと、まあ、どうでもいいわけです。

[snd play]で音が流れているときに、再度
[snd play]としてしまうと、無視されてしまいます。

その場合、
AVAudioPlayer *sndを複数用意しておく、というのもありかもしれませんが、
効果音程度でしたら、
playingというプロパティを参照し、再生中か確認し、再生中であれば、
currentTimeに0をセットするだけで、最初から再生するので、
そういう使い方をお勧めします。

コードを張り付けたいところですが、時間があったら後日記事再編集で張り付けて置きます。

コメントを残す

%d人のブロガーが「いいね」をつけました。