Я работаю над проектом iOS, который требует подавления акустического эха, поэтому подтип kAudioUnitSubType_VoiceProcessingIO кажется хорошим выбором. Ниже приводится описание моего аудиоустройства
//io unit description
AudioComponentDescription ioUnitDescription;
ioUnitDescription.componentType = kAudioUnitType_Output;
ioUnitDescription.componentSubType = kAudioUnitSubType_VoiceProcessingIO;
ioUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
ioUnitDescription.componentFlags = 0;
ioUnitDescription.componentFlagsMask = 0;
И, основываясь на моем опыте работы с подтипом RemoteIO, я включил элемент ввода:
UInt32 enable = 1;
AudioUnitSetProperty(ioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, 1, &enable, sizeof(enable));
Однако я получил ошибку при инициализации аудиографа. Тот же звуковой график хорошо работает, если VoiceProcessingIO заменен RemoteIO.
Есть ли разница между RemoteIO и VoiceProcessingIO, требующая особого внимания?
Спасибо, Chuankai