くまちゃんのiOS/Androidゲームプログラミング

マイペースでゲームつくってます。

サウンド SE (AudioToolboxでcafファイルを鳴らす)【iOS7対応】

[2013.12.28修正]

iOS7になり変更がありました。Xcode5.0.2でビルド確認済。

1. フレームワーク名前変更

 (iOS6)  #import<AudioToolbox/AudioServices.h>

→(iOS7)  #import<AudioToolbox/AudioToolbox.h>

2. Xcode5からARCがデフォルトになったためポインタのキャストを修正

 (iOS6)  AudioServicesCreateSystemSoundID((CFURLRef)url,&jump);

→(iOS7)  AudioServicesCreateSystemSoundID(CFBridgingRetain(url),&jump);

 

1.AudioToolbox.frameworkを追加する

2.XXXView.h 変数

#import <AudioToolbox/AudioToolbox.h>

 

@interface XXXView : UIView {

 

 SystemSoundID jump;

 

}

 

3.XXXView.m 読み込み

 

-(id)initWithCoder:(NSCoder*)coder {

 

// サウンドファイル読み込み ポインタいちいち個別設定が面倒なので、あえて{}使って同じポインタ名使い回ししてます

{ // jump.caf

    NSString *path=[[NSBundle mainBundle] pathForResource:@"jump" ofType:@"caf"];

    NSURL *url=[NSURL fileURLWithPath:path];

    AudioServicesCreateSystemSoundID(CFBridgingRetain(url),&jump);

}

 

 

4.XXXView.m 鳴らしたいところで

AudioServicesPlaySystemSound(jump);

 

AVFoundationより音の立ち上がりが全然早い。これで連続再生可能。