我正在寻找一个明确的答案,让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?
感谢, Ĵ
答案 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很可能无法解决问题。