【发布时间】:2015-03-23 18:49:39
【问题描述】:
我有一个 AUGraph 设置和工作,它由一个多通道混音器(带有单个单声道输入)组成,为 RemoteIO (kAudioUnitSubType_RemoteIO) 单元提供输出到扬声器。我实现了单输入混音器,以便能够在左右硬件输出通道之间平移我的音频源。这工作得很好。
由于这是一个 VOIP 应用程序,我一直在尝试使用语音处理 IO 单元 (kAudioUnitSubType_VoiceProcessingIO) 代替远程 IO 单元 (kAudioUnitSubType_RemoteIO)。根据 Apple 的描述,该单元的行为应该类似于具有一些额外功能的远程 IO 单元...
语音处理 I/O 单元(子类型
kAudioUnitSubType_VoiceProcessingIO)具有远程 I/O 单元的特性,并为双向双工通信增加了回声抑制。它还增加了自动增益校正、语音处理质量调整和静音。这是用于 VoIP(互联网协议语音)应用的正确 I/O 单元。
但我注意到,当我切换到语音处理 IO 单元时,我无法使用混音器进行平移。关于这里发生了什么的任何想法?语音处理 IO 单元本身是单声道的吗?
【问题讨论】:
-
您的流格式是什么?我不认为 VP I/O 单元本质上是单音的
-
混音器输入格式如下:AudioStreamBasicDescription audioFormat = { 0 };音频格式.mSampleRate = 16000.00; audioFormat.mFormatID = kAudioFormatLinearPCM; audioFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; audioFormat.mFramesPerPacket = 1; audioFormat.mChannelsPerFrame = 1; audioFormat.mBitsPerChannel = 16; audioFormat.mBytesPerPacket = 2; audioFormat.mBytesPerFrame = 2;
-
好的,看起来不错。如果您在 github/gist 上有代码,我可以看一下,但如果没有更多上下文或信息,很难看到发生了什么。比如失去平移能力是什么意思?是否抛出错误或平移停止工作?
-
关于“失去平移能力”...使用 RemoteIO 给我一个立体声信号给耳机,它响应左/右平衡调整,无论是在多声道混音器还是 iOS/设置/常规/辅助功能/平衡滑块。当我简单地将子类型切换到 VPIO 单元时,信号不再响应平衡调整。信号在左/右声道中似乎是相等的,与平衡(又名声像)无关,所以我假设输出必须是单声道的。
标签: core-audio voip audiounit mixer remoteio