4

我正在寻找关于让 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?

谢谢, j

4

1 回答 1

4

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

1) 对于某些设备(例如Samsung S2 Plus GT-I9105PHTC One M7HTC One M8G3 LG-D855Nexus 5等),根本无法通过内置麦克风激活真正的立体声录音胶囊。尽管在某些情况下,制造商的摄像机应用程序会产生真正的立体声,但您找不到任何其他能够做到这一点的应用程序。

2) 对于其他一些设备,只有很少的特定组合MediaRecorder.AudioSource和例如采样率(或其他基本设置)能够实现真正的立体声录音(例如摩托罗拉 Moto G需要MediaRecorder.AudioSource.CAMCORDER和 48kHz 采样率)。

3) 在大多数带有两个麦克风胶囊AudioFormat.CHANNEL_IN_STEREO的设备上,足以激活真正的立体声录音。

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

于 2015-01-20T12:09:55.193 回答