多声道混音器+语音处理IO单元

时间:2015-03-23 18:49:39

标签: core-audio voip audiounit mixer remoteio

我有一个AUGraph设置和工作,它由一个多声道混音器(带一个单声道输入)提供一个RemoteIO(kAudioUnitSubType_RemoteIO)单元输出到扬声器。我实现了单输入混音器,以便能够在左右硬件输出通道之间平移音频源。这很好用。

由于这是一个VOIP应用程序,我一直在尝试使用语音处理IO单元(kAudioUnitSubType_VoiceProcessingIO)代替远程IO单元(kAudioUnitSubType_RemoteIO)。根据Apple的描述,该单元的行为应该像具有一些额外功能的远程IO单元......

  

语音处理I / O单元(子类型kAudioUnitSubType_VoiceProcessingIO)具有远程I / O单元的特性,并为双向双工通信添加了回声抑制功能。它还增加了自动增益校正,语音处理质量调整和静音功能。这是用于VoIP(互联网协议语音)应用程序的正确I / O单元。

但我注意到当我切换到语音处理IO单元时,我失去了使用调音台进行平移的能力。关于这里发生了什么的任何想法?语音处理IO单元本身是单声道的吗?

1 个答案:

答案 0 :(得分:1)

对于我的特定AUGraph,多通道混音器输出为IO单元供电,将ASBD转储到IO单元的输入范围始终显示每帧2个通道。据我从文档中了解,多声道混音器的输出是立体声。

我将ASBD转储到RemoteIO单元的输出范围,实际上ASBD每帧显示2个通道。尝试将此覆盖为1通道会导致kAudioUnitErr_PropertyNotWritable错误。

然后我将子类型切换到VPIO单元。将ASBD转储为输出范围显示每帧1个通道。如上所述,尝试将其覆盖为2个通道也会导致相同的属性不可写错误。

至少对于我的特定AUGraph,我必须得出结论,VPIO单元本质上是单声道的。