gpt4 book ai didi

ios - 核心音频,iOS : Failed to use mono Input and stereo output with RemoteIO

转载 作者:行者123 更新时间:2023-11-29 03:52:20 25 4
gpt4 key购买 nike

我尝试使用一个 RemoteIO AudioUnit(这是唯一的 AudioUnit)的两个 AudioStreamBasicDescription 将音频输入设置为单声道并输出为立体声。

然后,我为输入 (kAudioOutputUnitProperty_SetInputCallback) 和输出 (kAudioUnitProperty_SetRenderCallback) 注册了两个单独的回调,并期望在我的输出回调中使用 AudioBufferList *ioData, ioData->mNumberBuffers 应为 2。

但是,令我惊讶的是,它仍然是 1。

RemoteIO是否不支持输入和输出不同的 channel 数?

最佳答案

我似乎已经明白了:我使用的是有符号整数示例格式,并且使用该格式,RenderCallback 的输入参数 AudioBufferList *ioData 中只有一个带有交错音频样本的 AudioBuffer(两个输出 channel 缓冲区连接成一个),即 AudioBufferList::mNumberBuffers是一。它唯一的 AudioBuffer 成员又具有一个属性 mNumberChannels ,该属性对应于真实的 channel 计数。就我而言,该字段是两个。

支持上述内容的另一个发现:有符号整数格式无法交错(在 OSX Mountain Lion 上使用 Xcode4.6 进行测试),即属性 kAudioFormatFlagIsNonInterleaved 无法与 kAudioFormatFlagIsSignedInteger 结合使用 设置 ASBD 的格式标志时。

如果使用浮点加非交错采样格式,则 RenderCallback 的 AudioBufferList *ioData 在缓冲区列表中有两个 AudioBuffer,每个都有 mNumberChannels 字段合二为一。

关于ios - 核心音频,iOS : Failed to use mono Input and stereo output with RemoteIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16951181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com