Dec 152011
 

Objective-Cで決定音やキャンセル音等のSEやループのBGMを再生する方法で最も簡単な方法はAudioToolboxを使うか、Cocos2D(SimpleAudioEngine)を使うこと。

短い音の再生(その1)

wavファイルをresourcesフォルダに格納する。再生できる形式(caf等)であればOK。この説明では「ok.wav」としておく。

下記のようにAudioToolboxのバイナリをリンクする。Addを押す。

忘れずにimportする。

後からいつでも再生できるようメンバ変数(SystemSoundID型)を定義しておく。

#import <AudioToolbox/AudioServices.h>

@interface AppDelegate : NSObject{

SystemSoundID decideSoundId;

}

再生する音ファイルを読み込む。初期化に関するメソッドで一度だけ行えば問題ない。

NSBundle *mainBundle = [NSBundle mainBundle];

NSURL *URL;

URL = [NSURL fileURLWithPath:[mainBundle pathForResource:@"ok" ofType:@"wav"] isDirectory:NO];

AudioServicesCreateSystemSoundID((CFURLRef)URL, &decideSoundId);

再生する箇所の記述。

AudioServicesPlaySystemSound(decideSoundId);

メモリの掃除を行う箇所では次の通り。

AudioServicesDisposeSystemSoundID(decideSoundId);

短い音の再生(その2)
Cocos2Dでは、次のように一行だけで済む。Cocos2Dのインストールの手間を省けば簡単といえる。

[[SimpleAudioEngine sharedEngine]playEffect:@"ok.wav"];

ループの再生
Cocos2Dでは、次のように記述。importは最初に忘れずに書く。

#import "SimpleAudioEngine.h"
[[SimpleAudioEngine sharedEngine]playBackgroundMusic:@"loop.wav" loop:YES];

ループ音の再生の停止は次の通り。

[[SimpleAudioEngine sharedEngine]stopBackgroundMusic];

コメント

個のコメント

Powered by Facebook Comments

 Posted by at 15:59

Sorry, the comment form is closed at this time.