我希望有人能帮助我解决这个问题。
不久前,我开发了一个应用程序,以便同时录制智能手机中前置麦克风和后置麦克风捕获的声音。基本上,我像这样制作下一个对象:
音频记录 音频记录 = 新音频记录(MediaRecorder.AudioSource.CAMCORDER, 频率, AudioFormat.CHANNEL_IN_STEREO, 音频编码, 缓冲区大小);
它非常适合索尼 Xperia Neo V,但不适用于摩托罗拉 Moto G(或者我猜是 Moto X)。查看文档后,我看到了 CAMCORDER 标志的下一个:
如果可用,则麦克风音频源的方向与摄像头相同,否则为主设备麦克风。
摩托罗拉 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);
我使用的是 Moto G,安装了 KitKat。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)