酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

iOSでAVaudioPlayerで音を鳴らす

本記事は「AVaudioPlayerを使ってサウンドファイル(BGMや効果音など)を再生する - iOSアプリ開発の逆引き辞典」に転記しました。

AVAudioPlayerクラスを使用する場合は、importディレクティブに以下の宣言が必要になります。

#import <AVFoundation/AVFoundation.h>

バイナリ内に含まれる楽曲ファイルを再生させる場合のサンプルコードを以下に示します。

// 楽曲ファイルのパスからAudioPlayerオブジェクトを作成
NSString* path = path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"wav"];
NSURL* url = [NSURL fileURLWithPath:path];
AVAudioPlayer *player= [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

// playが呼び出されてからすぐに音を鳴らすことが出来る様に
// あらかじめファイルの読み込みをおこない、バッファに保持しておく
[player prepareToPlay]

// 音声ファイルの再生をおこなう
[player play];

楽曲ファイルをBGM的に使用したい場合は、再生前に再生回数(numberOfLoopsプロパティ)を無限に設定します。0より小さいの値を設定すれば楽曲を無限ループで再生させます。

// 無限ループで再生させたい場合
[player setNumberOfLoops:-1];

// 3回再生させたい場合
[player setNumberOfLoops:2];