読者です 読者をやめる 読者になる 読者になる

What we talk about when we talk about Technology

技術について語ります。

マイクの入力をそのまま再生する

RemoteIOのinputとoutputを直接つなぐと、
入力をそのまま出力することができる。

var remoteIONode: AUNode = 0
var remoteIOUnit: AudioUnit = nil
        
NewAUGraph(&mAuGraph)
AUGraphOpen(mAuGraph)
        
var cd = AudioComponentDescription(componentType: kAudioUnitType_Output,
                                   componentSubType: kAudioUnitSubType_RemoteIO,
                                   componentManufacturer: kAudioUnitManufacturer_Apple,
                                   componentFlags: 0,
                                   componentFlagsMask: 0)
        
AUGraphAddNode(mAuGraph,
               &cd,
               &remoteIONode)
        
AUGraphNodeInfo(mAuGraph,
                remoteIONode,
                nil,
                &remoteIOUnit)
        
var flag: UInt32 = 1
AudioUnitSetProperty(remoteIOUnit,
                     kAudioOutputUnitProperty_EnableIO,
                     kAudioUnitScope_Input,
                     1,
                     &flag,
                     UInt32(sizeofValue(flag)))
        
AUGraphConnectNodeInput(mAuGraph,
                        remoteIONode,
                        1,
                        remoteIONode,
                        0)
        
AUGraphInitialize(mAuGraph)
        
var size: UInt32 = 0
AudioUnitGetProperty(remoteIOUnit,
                     kAudioUnitProperty_StreamFormat,
                     kAudioUnitScope_Output,
                     0,
                     &audioUnitOutputFormat,
                     &size)