Android AAC编码文件在两个通道中是否始终具有相同的音频数据?

Android AAC编码文件在两个通道中是否始终具有相同的音频数据?,android,audio,encoding,channel,Android,Audio,Encoding,Channel,我正在开发一个Android应用程序,它使用一个MediaRecorder实例来记录来自麦克风的音频。输出格式设置为MediaRecorder.OutputFormat.AAC_ADTS,音频编码器设置为MediaRecorder.AudioEncoder.AAC,音频通道设置为2 录制的声音保存到文件中。要读取PCM数据,我使用库。我将PCM数据保存在一个名为channels的2D数组中:channels[0]保存来自通道1的数据,而channels[1]保存来自通道2的数据。两个1D阵列的数

我正在开发一个Android应用程序,它使用一个
MediaRecorder
实例来记录来自麦克风的音频。输出格式设置为
MediaRecorder.OutputFormat.AAC_ADTS
,音频编码器设置为
MediaRecorder.AudioEncoder.AAC
,音频通道设置为2

录制的声音保存到文件中。要读取PCM数据,我使用库。我将PCM数据保存在一个名为
channels
的2D数组中:
channels[0]
保存来自通道1的数据,而
channels[1]
保存来自通道2的数据。两个1D阵列的数据100%相等

我想知道为什么会这样。这种情况是否经常发生,即不依赖于电话


另外,我还尝试用
pydub
库打开文件。我得到了同样的结果。

您的麦克风是立体声麦克风吗?如果没有,你希望这两个频道有什么不同?greeble31我不知道。我在网上搜索了一下,但没有找到任何信息。但是,根据文档,在
prepare()
(我这样做)之前应该调用方法
setAudioChannel(int-numOfChannels)
,因为“prepare()可能会对参数执行附加检查,以确保指定数量的音频通道是否适用。”,我从JAAD库调用了一个方法,该方法返回通道数,数字为2。(来源:)那么答案是“不”。这是一个单声道麦克风。因此,您要求
MediaRecorder
从单声道麦克风为您提供立体声频道,它做了一些合理的事情:它将单声道复制到两个声道中。你的问题是,“这种情况经常发生吗”?嗯,考虑到某些基本假设,是的。假设您的设备没有立体声麦克风。如果有,我希望在每个通道中看到不同的数据。@greeble31是的,这是一个单声道麦克风。我用内置的语音录制应用程序录制了一个.mp3,然后检查了波形。2个通道,相同的波形。我想我无法通过编程获得有关麦克风是立体声还是单声道的信息,对吗?我不确定;看见