Java 立体声录音提供两个相同的频道

Java 立体声录音提供两个相同的频道,java,android,audio,Java,Android,Audio,我是Android Studio的新手,正在尝试创建录制立体声音频所需的第一个应用程序。 我在使用AudioRecord类时使用以下语句: recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, AudioFormat.CHANNEL_IN_STEREO, AudioF

我是Android Studio的新手,正在尝试创建录制立体声音频所需的第一个应用程序。 我在使用AudioRecord类时使用以下语句:

 recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate,
                                    AudioFormat.CHANNEL_IN_STEREO,
                                    AudioFormat.ENCODING_PCM_16BIT,bufferSize);
我使用两个外部麦克风连接到声卡,声卡通过usb插头插入手机。在我的电脑上使用audacity相同的声卡时,立体声录音效果很好

但是在应用程序中,当使用Java的方法recorder.read(sData,0,Elements2Rec)时,问题出现了:我得到两个相同的频道
sData
看起来像
[1,1,8,8,0,0,-9,-9等]
,每个帧中的样本相同

应用程序获得的唯一信号实际上与其中一个麦克风记录的信号相对应,但我没有找到从第二个麦克风获取信号的解决方案。很久以前也有人问过同样的问题,但我无法解决我的问题

有人知道我能做什么吗


以下是可能有帮助的其他信息: 我的应用程序需要将音频保存在pcm文件中,我正在使用recorder.read()方法的输出一个字节接一个字节地写入该文件

我的目标API是15,我正在三星Galaxy A3上测试该应用程序


我在清单中声明了音频许可,但没有更多关于如何处理麦克风的内容,因为我不知道是否有必要,也不知道如何处理。我用的是WM-4000PTV2话筒和贝林格UCA222声卡

我已经很久没有使用Android音频路由工具了,所以我真的不记得我们以前是如何处理外部话筒的,但手机可能会检测到它是便携式免提设备,并假设它只有一个话筒。如果是这样的话,你可能无能为力。谢谢你的回答。你知道有没有办法确定发生了什么?这是否意味着使用其他话筒可能会有所不同?
adb shell dumpsys media.audio\u policy
adb shell dumpsys media.audio\u flinger
可能会给您一些线索。我使用单声道录音绕过了这个问题,Java的方法可以解决这个问题。谢谢你的帮助