BGM のような音声ファイルを再生する方法として、以前「[iPhone 開発メモ] Audio Queue で音声ファイルを再生する」というエントリを書きましたが、iPhone OS 2.2 から AVAudioPlayer を使用することによりもっと簡単に再生することができました。

FrameWorks に AVFoundation.framework を追加して、ヘッダファイルでインクルードします。

#include <AVFoundation/AVFoundation.h>


後は以下のようにすれば再生可能です。

NSString *path = [[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"mp3"];
NSURL *url = [NSURL fileURLWithPath:path];
AVAudioPlayer *audio = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[audio play];

その他、再生位置を指定したり、ループ回数を指定することも可能です。

// 30秒から再生
audio.currentTime = 30.0f;
// 3回ループ
audio.numberOfLoops = 3;
// 無限ループ
audio.numberOfLoops = -1;

再生可能ファイルは iPhone/iPod touch で再生できるファイルフォーマットのようです。MP3 も実機で再生できました。

関連する投稿