某些设备上的Android MediaRecorder音量较低(HTC ONE S)

时间:2012-10-01 22:48:11

标签: android media-player volume mediarecorder

我使用以下代码(取自官方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,有时超过10 000,而HTC高端设备报告的振幅低于1000(200-400)。根据这些幅度,音频播放在htc设备上的音量非常差,而三星录制的音频在可接受的音量上具有音量。 (两个设备的媒体音量都设置为高)。

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

我尝试使用所有可用的MediaRecorder.AudioSource值进行录制,对于大多数人来说它都是相同的,而对某些人来说神秘的不适用(VOICE_CALL,VOICE_UPLINK) 知道这里有什么不对吗?

祝你好运, Mikolaj

0 个答案:

没有答案