在Android中用AudioRecord录制立体声

时间:2014-09-22 20:43:25

标签: android audio audio-recording tinyalsa

我正在寻找一个明确的答案,让audioRecord同时使用顶部安装和底部安装的麦克风,因此我没有2个相同的(单声道)声道。我想知道我可以做些什么样的民意调查,以确保小工具能够提供良好的流程。

我正在制作一个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)

如果有人在nexus 5上获得立体声录音,我会非常感谢你的帮助。我应该搬到alsa还是tinyAlsa?

感谢, Ĵ

1 个答案:

答案 0 :(得分:4)

您的问题与my question密切相关,似乎答案取决于设备:

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

2)对于某些其他设备,只有少数MediaRecorder.AudioSource的特定组合,例如采样率(或其他基本设置)可实现真正的立体声录音(例如Motorola Moto G needs MediaRecorder.AudioSource.CAMCORDER and 48kHz sample rate)。

3)在大多数带有两个话筒头的设备上AudioFormat.CHANNEL_IN_STEREO足以激活真正的立体声录音。

不幸的是,如果不使用设备,Alsa或tinyAlsa很可能无法解决问题。

相关问题