【发布时间】:2013-08-01 16:57:29
【问题描述】:
我正在尝试通过我的 Galaxy nexus 手机进行立体声录音。根据其规格,该手机内置了 2 个麦克风。如果我错了,请纠正我,当设备上支持立体声录音时,将使用 2 个麦克风
我在初始化和使用 AudioRecord 类录制立体声音频时没有收到任何错误。但是我从两个音频通道得到的结果是完全一样的。有没有人遇到过同样的问题?有任何想法吗?谢谢你。以下代码 sn-p 是我用于立体声录音设置的代码:
int bufferRead = 0;
int bufferSize = AudioRecord.getMinBufferSize(44100,
AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT);
// if doesn't support that sampling frequency
if (bufferSize == AudioRecord.ERROR_BAD_VALUE
|| bufferSize == AudioRecord.ERROR) {
Log.i(this.toString(), "doesn't support sampling rate of "
+ frequency);
throw new IllegalArgumentException(
"entered unsupported audio sampling rate");
}
// grabbing 16-bit pcm audio
short[] tempBuffer = new short[bufferSize];
AudioRecord recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC,
44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT,
bufferSize);
recordInstance.startRecording();
【问题讨论】:
-
您将
AudioFormat.CHANNEL_IN_MONO传递给AudioRecord构造函数。 -
抱歉,我在写问题时打错了字。已经改了。我很确定我可以恢复立体声数据,因为我可以很好地将它们分成两个通道。
-
在过去几年我使用过的每部带有两个麦克风的手机上,请求 2 个通道(即
CHANNEL_IN_STEREO)就足够了。我能想到的一个例外是 XPeria P,如果您使用CAMCORDER音频源,它会为您提供双单声道,因为摄像头机制会干扰辅助麦克风。不过,我从未使用过 OMAP 平台,所以我不知道他们通常是如何做事的。
标签: android microphone audio