Objective-Audioより
- AudioUnitCallbackStructの設定
AURenderCallbackStruct callback;
callback.inputProc = Callback;
callback.inputProcRefCon = self; //あるいはObjective-Cでコールバックを実装するオブジェクト
OSStatus Callback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
OSStatus err =
[(id)inRefCon callback:inNumberFrames
ioData:ioData
ioActionFlags:ioActionFlags
inTimeStamp:inTimeStamp
inBusNumber:inBusNumber];
return err;
}
- (OSStatus)callback:(UInt32)inNumberFrames
ioData:(AudioBufferList *)ioData
ioActionFlags:(AudioUnitRenderActionFlags *)ioActionFlags
inTimeStamp:(const AudioTimeStamp *)inTimeStamp
inBusNumber:(UInt32)inBusNumber
{
OSStatus err;
//ここに実装する
return err;
}
- インスタンス変数とかselfとか何の制限もなく普通にアクセス出来るようになる
- コールバック内をNSAutoreleasePoolで囲まなくてはいけない