iOSでサウンドを再生する方法はいくつかありますが、最も簡単に、短い効果音などを再生するには、AudioToolboxを使います。
この方法は、使い方がとても簡単な反面、途中で再生を中断したり、音量を調整したり、プレロードしたりといったことはできません。ボタンを押したときのクリック音などに使います。
1. AudioToolbox.frameworkを取り込みます
2. AudioToolbox/AudioServices.hをインポート
#import <AudioToolbox/AudioServices.h>
3. SystemSoundIDを宣言
何度も使う場合は、メンバ変数として宣言しておくと便利。
SystemSoundID beepSoundId;
4. SystemSoundオブジェクトを作成
ここでは、Resourcesの下にある"beep.wav"を再生します。AudioServicesCreateSystemSoundIDでSystemSoundオブジェクトを作成します。次のようなメソッドを定義しておくと便利。
- (void)loadSounds {
NSBundle *mainBundle = [NSBundle mainBundle];
NSURL *beepWavURL = [NSURL fileURLWithPath:[mainBundle pathForResource:@"beep" ofType:@"wav"] isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)beepWavURL, &beepSoundId);
}
5. 再生
あとは、再生したいタイミングでAudioServicesPlaySystemSoundをコールすれば、音が鳴ります。
AudioServicesPlaySystemSound(beepSoundId);
5. あとかたづけ
使わなくなったら、AudioServicesDisposeSystemSoundIDを呼んで解放します。これはdeallocの中で呼んだ例。
- (void)dealloc {
[super dealloc];
AudioServicesDisposeSystemSoundID(beepSoundId);
}





