ios - 具有不同 channel 数的 AudioConverterRef

标签 ios core-audio audiotoolbox

我有一个 4 channel 的音频格式,我想将其转换为 2 channel 格式。 kAudioConverterChannelMap 只能丢弃额外的输入:

When In > Out, the first Out inputs are routed to the first Out outputs, and the remaining inputs are discarded.

是否可以使用 kAudioConverterChannelMap 指定 channel 映射,将 1 + 2 channel 合并为一个输出格式,将 3 + 4 channel 合并为第二个输出格式?

如果没有,我应该使用什么来进行此转换?

最佳答案

据我所知,除了丢弃额外的 channel 之外,Apple 并未提供减少音频流 channel 数的 API。

为什么?我想是因为你如何做到这一点是一个个人选择,如果他们真的考虑过这一点,他们可能会得出这样的结论:没有一种方法能让每个人都满意,所以最好选择能让每个人都满意的方法生气:丢弃。

那么有什么大不了的呢?我认为这主要与各个 channel 的“意义”有关。考虑将立体声转换为单声道的“明显简单”的情况 - 它是 surprisingly nuanced ,取决于立体声音频的录制方式。 这是在理想情况下,您的 2 channel 音频实际上被声明为“立体声”(例如,通过 AudioChannelLayoutTag(例如 kAudioChannelLayoutTag_Stereo))。

因此,即使是“标记”的多声道音频也非常模糊,因此唯一知道如何解释和减少您的 4 声道音频的声道数的人就是.

也就是说,如果使用一些 Accelerate/vDSP 数组函数(例如 vDSP_vadd)来提供一个将偶数 channel 与偶数 channel 求和、奇数 channel 与奇数 channel 求和的函数,会杀死他们吗?因为这可能就是您想要的。

关于ios - 具有不同 channel 数的 AudioConverterRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70701926/

相关文章:

ios - 如何从 swift 设置中读取单声道音频值

iphone - 调用了dismissViewControllerAnimated,但没有解除ViewController

ios - 应用程序内购买屏幕不符合 Beta 测试的预期

ios - react-native 无法解析模块 'warnOnce'

ios - 从 UIImageView 和 UITextView 创建 UIImage

c++ - Objective-C,CoreAudio : Possible reasons for which played sound has additional noise, 嘶嘶声和爆裂声?

iphone - 如何在 iPhone 上编写实时准确的音频音序器?

ios - AVPlayer 不同步

swift - 访问元素给定结构 UnsafeMutablePointer

ios - 从 MusicSequence 生成 MIDI 文件时遇到问题