我正在寻找关于让 audioRecord 同时使用顶部安装和底部安装麦克风的明确答案,因此我没有 2 个相同的(单声道) channel 。我想知道我可以事先进行哪些轮询以确保小工具能够提供良好的流。
我正在研究 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?
谢谢, j
最佳答案
您的问题与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
足以激活真正的立体声录音。
不幸的是,如果不对设备进行 root,Alsa 或 tinyAlsa 很可能无法解决问题。
关于android - 在 android 中使用 AudioRecord 录制立体声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25982814/