android - 使用摩托罗拉 Moto G(或 Moto X)录制立体声音频

标签 android audio smartphone recording

我希望有人能帮我解决这个问题。

前段时间我开发了一个应用程序,目的是在智能手机中同时记录前置麦克风和后置麦克风捕获的声音。基本上,我会像这样制作下一个对象:

AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.CAMCORDER, frequency, AudioFormat.CHANNEL_IN_STEREO, audio encoding, buffer size);

它非常适合 Sony Xperia Neo V,但不适用于 Motorola Moto G(我猜是 Moto X)。查看文档,我看到了 CAMCORDER 标志的下一个:

Microphone audio source with same orientation as camera if available, the main device microphone otherwise.

摩托罗拉 Moto G 没有摄像头麦克风,但顶部有一个(索尼 Xperia 背面有一个麦克风或摄像头麦克风)。事实上,在使用 Moto G 时,我收到了两次相同的信号(由前置麦克风捕获的信号),根据文档,这是正确的。

谁能帮帮我?

最佳答案

我遇到了同样的问题,我使用 48000 Hz 的采样率让它工作。我认为它会起作用,因为使用默认相机应用程序制作的视频录制是立体声的,并且具有此采样率。使用函数 getMinBufferSize() 时也必须考虑该频率。

这是我的设置:

private static final int RECORDER_BPP = 16;
private static final int RECORDER_SAMPLERATE = 48000;
private static final int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_STEREO;
private static final int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;

然后我创建 AudioRecord 对象:

recorder = new AudioRecord(MediaRecorder.AudioSource.CAMCORDER,
                                            RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);

我正在使用安装了 KitKat 的 Moto G。

关于android - 使用摩托罗拉 Moto G(或 Moto X)录制立体声音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563483/

相关文章:

java - 梯度错误: Could not find property file

android - 无法在 Web 服务器中检测到 Android

android - 在 Android Studio 上为不同的构建类型创建资源文件

audio - 可以使用Tensorflow学习和处理音频吗?

objective-c - 如何使用AudioServices播放声音效果- objective-c

android - 如何更改Google Play和Android主屏幕上的图标?

javascript - 即使智能手机屏幕关闭,也会在后台运行 Web 应用程序

android - 在 AutoCompleteTextView 中设置值

java - Android javax.naming.* 替换?

javascript - 如果 <video> 正在播放停止 <audio>