在android中使用音频录制录制立体声

在android中使用音频录制录制立体声,android,audio,audio-recording,tinyalsa,Android,Audio,Audio Recording,Tinyalsa,我正在寻找一个明确的答案,让audioRecord同时使用顶装和底装话筒,这样我就没有两个相同的(单声道)声道。我想知道,为了确保一个小工具能够提供一个好的流,我可以做些什么 我正在开发galaxy nexus 5,但无法让它正常工作,所以我无法让它在所有设备上都保持稳定 我试过所有的MediaRecorder.AudioSource AudioRecord audioInputStream1 = new AudioRecord(Media.Recorder.CAMCORDER, sam

我正在寻找一个明确的答案,让audioRecord同时使用顶装和底装话筒,这样我就没有两个相同的(单声道)声道。我想知道,为了确保一个小工具能够提供一个好的流,我可以做些什么

我正在开发galaxy nexus 5,但无法让它正常工作,所以我无法让它在所有设备上都保持稳定

我试过所有的
MediaRecorder.AudioSource

AudioRecord audioInputStream1 = new AudioRecord(Media.Recorder.CAMCORDER,
    sampleRate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)
并实例化两条记录:

AudioRecord audioInputStream1 = new AudioRecord(Media.Recorder.MIC,
    sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)

AudioRecord audioInputStream2 = new AudioRecord(Media.Recorder.CAMCORDER,
    sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)
如果有人在Nexus5上获得了立体声录音,我将非常感谢您的帮助。我应该搬到阿尔萨还是廷亚尔萨

谢谢,
j

您的问题与以下问题密切相关,答案似乎与设备有关:

1) 对于某些设备(如三星S2 Plus GT-I9105P、HTC One M7、HTC One M8、G3 LG-D855、Nexus 5等),根本无法通过内置麦克风盒激活真正的立体声录音。虽然在某些情况下,制造商的摄像机应用程序会产生真正的立体声效果,但你找不到任何其他应用程序能够做到这一点

2) 对于某些其他设备,只有少数特定组合的
MediaRecorder.AudioSource
和采样率(或其他基本设置)才能实现真正的立体声录制(例如)

3) 在大多数带有两个麦克风振膜的设备上
音频格式。立体声中的频道\u
足以激活真正的立体声录音


不幸的是,Alsa或tinyAlsa在不启动设备的情况下很可能无法解决问题。

在我使用过的许多设备上,
摄像机
音频源对应于一个辅助麦克风(通常位于手机的背面),因此它隐含着一个单声道源。我认为获得立体声录音的最佳选择是将
麦克风
音频源与
频道_in_立体声
结合使用(但请记住,有些设备根本不支持立体声录音)。试图同时使用两台单声道录音机在大多数设备上可能根本不起作用。谢谢@Michael,您是否有使用“麦克风”和“立体声中的频道”进行立体声录音的经验?您的源代码中存在严重的拼写缺陷:您错误地使用了
Media.Recorder.
而不是
MediaRecorder.AudioSource.