我正在用Audio Unit編寫一個簡單的iOS應用程序。我想添加混響效果。 因此,該圖看起來像RemoteIO_Input - > Reverb - > RemoveIO_Output。 但嘗試爲混響單元設置流格式時出現錯誤 - kAudioUnitErr_FormatNotSupported
。 這段代碼工作正常,沒有使用混響單元(圖中的單個遠程IO),所以其他配置看起來很好,我不提供他們的代碼。iOS音頻單元混響流格式問題-10868 kAudioUnitErr_FormatNotSupported
UPD:iOS 6中使用
所以問題:
是否有允許的格式限制?
我應該使用什麼格式的參數?
是否應該在RemoteIO輸出元素的任何範圍內設置格式?
感謝您的關注。
CODE: 說明:
desc.componentType = kAudioUnitType_Output;
desc.componentSubType = kAudioUnitSubType_RemoteIO;
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
desc.componentManufacturer = kAudioUnitManufacturer_Apple;
descRev.componentType = kAudioUnitType_Effect;
descRev.componentSubType = kAudioUnitSubType_Reverb2;
descRev.componentFlags = 0;
descRev.componentFlagsMask = 0;
descRev.componentManufacturer = kAudioUnitManufacturer_Apple;
圖形設置
NewAUGraph(&graph);
AUNode ioNode;
AUNode rNode;
AUGraphAddNode(graph, &desc, &ioNode);
AUGraphAddNode(graph, &descRev, &rNode);
AUGraphOpen(graph);
AUGraphConnectNodeInput(graph, ioNode, 1, rNode, 0);
AUGraphConnectNodeInput(graph, rNode, 0, ioNode, 0);
格式的描述,併成立
// Describe format
audioFormat.mSampleRate = rate;//44100.00;
audioFormat.mFormatID = kAudioFormatLinearPCM;
audioFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
audioFormat.mFramesPerPacket = 1;
audioFormat.mChannelsPerFrame = 1;
audioFormat.mBitsPerChannel = 16;
audioFormat.mBytesPerPacket = 2;
audioFormat.mBytesPerFrame = 2;
OSStatus err = AudioUnitSetProperty(unit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Output,
kInputBus,
&audioFormat,
sizeof(audioFormat));
if (noErr != err) {
[self showStatus:err];
}
err = AudioUnitSetProperty(unitRev,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input,
0,
&audioFormat,
sizeof(audioFormat));
if (noErr != err) {
[self showStatus:err];
}