【发布时间】:2026-01-10 05:25:02
【问题描述】:
我正在构建可以录制音频的应用程序。但我想知道如何在我的设备上选择顶部或底部麦克风。 我在https://developer.android.com/ 上阅读了文档,我知道我们可以使用 MediaRecorder 类 来录制音频,它有 2 个定义的 MIC 和 CAMCORDER。 如果我们使用 MIC 定义,那么电话将使用底部麦克风 否则我们使用 CAMCORDER 然后电话将使用顶部麦克风。对吗?
mFileName = FunctionIndex.PATH + "/" + this.functionKey +".3gp";
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioChannels(1);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
MyLog.e("Microphone prepare() failed" + e.getMessage().toString());
}
mRecorder.start();
【问题讨论】:
-
不要考虑顶部和底部。这将因型号而异。一种将使用为电话定义的一种,一种将使用为摄像机定义的一种。这就是你所能知道的。据您所知,CAMCORDER 可能位于设备的另一侧,位于摄像头旁边。
-
当我们使用define时是CAMCORDER。如果是前置视频,则使用顶部麦克风,否则为后置视频,则使用底部麦克风。我在这里读到了developer.android.com/reference/android/media/…。
-
你仍然在用错误的方式思考。麦克风不称为顶部和底部,因为它们可能不是顶部和底部。可能只有一个。顶部可能有一个前一个后。或者在中间。他们使用不同的术语,因为您不应该假设麦克风的位置,因为您的假设在某些模型上是正确的,而在其他模型上是错误的。
-
嗨@GabeSechan,我明白了。我可以定义两个麦克风是主麦克风和辅助麦克风。问题是如何选择两个麦克风之一?你可以参考这个链接gadgetguideonline.com/s9/…。如果我想同时使用它们。我该怎么办?
-
您在将媒体播放器设置为 CAMCORDER 或 MIC 时设置音频源,无论您喜欢哪个。