【问题标题】:iPhone Audio Unit Recording In Background, How ToiPhone音频单元在后台录制,如何
【发布时间】:2012-01-13 13:10:52
【问题描述】:

我正在查看用于录制的音频单元功能。一切都很好,除了当应用程序在后台时录制回调停止,这与 AVCapture 使用 RED BAR 在后台保持录制不同。有没有办法让它在后台继续录制,就像使用 AVCapture 一样?

#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);

【问题讨论】:

  • 您是否对录制的音频进行了任何样本级别的访问?我在访问示例级别的内容时遇到了一些问题,看来您可能已经成功了。

标签: iphone core-audio audio-recording audiounit


【解决方案1】:

哦,忘了设置

目标/信息/所需的背景模式/应用播放音频

到测试应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多