電子趣味の部屋

電子系のガジェットやアプリ開発等の趣味の話題を書いてます

iPhoneSDKでサウンドの簡単な再生方法

iPhoneSDKで効果音の再生方法』でAudio Queue Servicesを使った効果音等の短い(5秒以内)の音声ファイルを再生する方法を書きましたが、今回はそれよりも長い音声ファイルを簡単に再生する方法です。
iPhone OS 2.2以降は音声ファイルはAVAudioPlayerで再生することができます。
Audio Queue Servicesと比較すると機能は多いですが、負荷が高いようです。AVAudioPlayerでも5秒以内の音声ファイルを再生することができますが、効果音等はAudio Queue Servicesを使った方が同時再生時の負荷が低いので、BGM等の長い音声ファイルの再生時のみAVAudioPlayerを使いましょう。
対応しているファイル形式はMP3, AAC他です。(詳しくはリファレンスやドキュメントを参照してください。)

例として、プロジェクトのResourcesに追加したtest.mp3ファイルを再生する手順を説明します。

フレームワークの追加

プロジェクトのFrameaworksへ"AVFoundation.framework"を追加します。

インポート文の追加

サウンドを扱うファイルに"AVFoundation/AVFoundation.h"のインポート文を追加する。

#import <AVFoundation/AVFoundation.h>

インスタンスの定義

ファイルを読み込み、AVAudioPlayerクラスのインスタンを作成します。
再生したいファイルが複数ある場合は、ファイル毎にインスタンを作成します。

AVAudioPlayer *testsound;
NSURL *furl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"]];
testsound = [[AVAudioPlayer alloc] initWithContentsOfURL:furl  error:nil];

再生

playメソッドで再生することができます。

[testsound play];

iPhone デベロッパーズ クックブック

iPhone デベロッパーズ クックブック

ユメみるiPhone ―クリエイターのためのiPhone SDKプログラミング

ユメみるiPhone ―クリエイターのためのiPhone SDKプログラミング