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で囲まなくてはいけない
コメントをかく