2011-12-05 66 views
4

我正在查看錄音的音頻單元功能。一切都很好,除了當應用程序處於後臺時錄製回調停止,不像AVCapture使用RED BAR在後臺錄製。有沒有辦法像AVCapture一樣在後臺繼續錄製?iPhone音頻單元錄製背景,如何

#import "AudioUnit/AudioComponent.h" 
#import "AudioUnit/AudioUnit.h" 

desc.componentType   = kAudioUnitType_Output; 
desc.componentSubType  = kAudioUnitSubType_RemoteIO; 
desc.componentFlags   = 0; 
desc.componentFlagsMask  = 0; 
desc.componentManufacturer = kAudioUnitManufacturer_Apple; 

AudioComponent inputComponent = AudioComponentFindNext(NULL, &desc); 
status = AudioComponentInstanceNew(inputComponent, &audioUnit); 
checkStatus(status); 

UInt32 flag = 1; 

status = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, kInputBus, &flag, sizeof(flag)); 
checkStatus(status); 

//status = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, kOutputBus, &flag, sizeof(flag)); 
checkStatus(status); 

AudioStreamBasicDescription  audioFormat; 
audioFormat.mSampleRate   = 8000.00; //44100.00; 
audioFormat.mFormatID   = kAudioFormatLinearPCM; 
audioFormat.mFormatFlags  = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; 
audioFormat.mFramesPerPacket = 1; 
audioFormat.mChannelsPerFrame = 1; 
audioFormat.mBitsPerChannel  = 16; 
audioFormat.mBytesPerPacket  = 2; 
audioFormat.mBytesPerFrame  = 2; 

status = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, kInputBus, &audioFormat, sizeof(audioFormat)); 
checkStatus(status); 

status = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, kOutputBus, &audioFormat, sizeof(audioFormat)); 
checkStatus(status); 

AURenderCallbackStruct callbackStruct; 

callbackStruct.inputProc = recordingCallback; 
callbackStruct.inputProcRefCon = self; 

status = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, kInputBus, &callbackStruct, sizeof(callbackStruct)); 
checkStatus(status); 
+0

你是否正在對你錄製的音頻進行任何樣本級訪問?我在訪問示例級別的東西時遇到了一些問題,看起來你可能已經開始工作了。 – MZimmerman6

回答

3

衛生署,忘了設置

目標/信息/所需的背景模式/應用程序播放音頻

到測試應用程式。