android - 在 android 中使用 AudioRecord 录制立体声

标签 android audio audio-recording tinyalsa

我正在寻找关于让 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-I9105PHTC One M7HTC One M8G3 LG-D855Nexus 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/

相关文章:

android - 未捕获的异常重新启动调用 Activity ?

android - 将 Apportable 与 cocos2d-x 一起使用

audio - 如何通过特定的声卡播放音频?

Android AudioRecord 剪辑

java - 使 BufferedReader 从 .txt 文件的中间而不是开头开始?

android - 如何在android中禁用 float 操作按钮

java - 程序在 Eclipse 中可以运行,但是当我导出到可运行的 JAR 时,它就不能运行。文件未找到异常

c# - WPF 库支持语音

android - 在android中具有固定数据报包长度的数据报套接字中的音频流质量不好

android - Smule 唱歌音频效果如何工作?