在我的iPhone应用程序中,我使用mono
在AVAudioRecorder
的AAC(m4a容器)中录制音频文件,即我明确设置
[recordSettings setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey];
在像Audacity这样的音频编辑器中打开这些文件时,它们只会按预期显示一个频道。然而,有许多流行的音频播放器,如VLC或foobar2000,将该文件解释为stereo
。例如。当我在VLC中显示Media Information... > Codec Details
时,它看起来像这样:
有趣的是,在iPhone上使用Apple的Voice Memo应用程序录制的文件显示了相同的行为。它们似乎是几个音频播放器中的stereo
文件,但是当我在Audacity打开它们时,结果发现它们只有一个频道。
我无法相信所有那些着名的媒体播放器都是马车。那么有没有办法告诉AVAudioRecorder
以某种方式设置频道号码,以便所有主要媒体播放器都能正确检测到它?
(我知道这是一个老线程,但为了任何人在谷歌搜索...)答案似乎是AAC(我假设你的编码器使用AAC-HE)总是编码为双声道单声道 - 在其他单词,音频本身被缩混为单声道,但它所在的文件由两个独立的音频通道组成,每个通道的音频与另一个相同。有趣的是,您安装的Audacity显然将其显示为一个频道 - 我将其显示为两个频道。到目前为止,我发现没有办法强制任何AAC编码的文件到一个通道。