ObjectALについて
iOSには音を鳴らすAPIが色々あるけど、
- AVFondation : 再生開始時に遅延が発生、大量再生すると重い。
- AudioToolbox : 30秒以下の音しか鳴らせない。
- OpenAL : デコード機能がなくてだるい。
など、一長一短あって使いづらい。
ObjectALは、そのへんの違いをうまく覆い隠してくれるサウンドライブラリである。
使い方
- 公式サイト からソースコードをダウンロード
- 中身のObjectAL/ObjectALディレクトリを自分のプロジェクトに放り込む。このとき、「Copy items into destination group's folder」、「Create groups for any added folders」にチェックをいれる(Xcode 4.3)
- プロジェクトで使用するフレームワークにAVFoundation、OpenAL、AudioToolboxを追加。
- 適当なViewControllerを作って、以下のようなコードを記述する。
#import "ViewController.h"
#import "ObjectAL.h"
@implementation ViewController
- (void)viewDidLoad
{
[[OALSimpleAudio sharedInstance] playEffect:@"sound.mp3"];
}
@end
おとが!なりました!
その他の機能
OALSimpleAudioは使うのが一番簡単なクラス。playEffectでSEが、playBgでBGMが鳴らせる。preloadEffect/preloadBgで音声をあらかじめ読み込んでおくこともできる。
より細かく挙動を制御したければ、OpenALをラップしてデコード機能を付けたOpenALManagerクラスと、ストリーミング再生に特化したOALAudioTrackクラスにアクセスすればいい。