2

我使用以下代码创建了录制一些音频的 android 应用程序(取自官方 android 开发人员指南)

MediaRecorder recorder = new MediaRecorder();       
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
final String fileName = getFileName();
recorder.setOutputFile(fileName);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
    recorder.prepare();
} catch (Exception e) {
    throw new RuntimeException("Failed to prepare recorder", e);
}
recorder.start();

录制后,我播放录制的音频

MediaPlayer player = new MediaPlayer();
player.setDataSource(new FileInputStream(getFileName()).getFD());
player.prepare();
player.start();

我还在录制通话录音时分析音频 recorder.getMaxAmplitude();

我在两台设备上运行此程序:HTC ONE S(搭载 Android 4)和相当低端的三星 Galaxy Young(GT-S5360,搭载 Android 2.3.6)。我尝试记录一些背景噪音(同一个房间里的收音机)。非常令人失望的是,三星设备报告的幅度高于 1000,有时甚至超过 10000,而 HTC 高端设备报告的幅度低于 1000 (200-400)。根据这些幅度,htc 设备上的音频播放音量非常差,而三星录制的音频的音量处于可接受的水平。(两个设备都将媒体音量设置为高)。

但是当我在 htc 设备上使用工厂提供的视频/音频录制应用程序时,当我播放它时,音频似乎非常敏感。

我尝试使用所有可用的 MediaRecorder.AudioSource 值进行录制,并且它们中的大多数值都相同,而对于某些(VOICE_CALL,VOICE_UPLINK)神秘地不起作用 知道这里可能出了什么问题吗?

最好的问候, 米科拉伊

4

0 回答 0