gpt4 book ai didi

xml - Kitkat/Lollipop 上的音频质量差异

转载 作者:数据小太阳 更新时间:2023-10-29 01:48:26 30 4
gpt4 key购买 nike

我正在尝试在 Android 上录制音频,但遇到了质量问题,分别是所选格式。

我使用以下设置

mr=new MediaRecorder();
mr.setAudioSource(MediaRecorder.AudioSource.MIC);
mr.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mr.setOutputFile("somepath");
mr.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

然而,该代码在运行不同 Android 版本(4.4.4 和 5.1.1)的两台设备上返回截然不同的结果。

当我查看文件头时,它显示了两个文件的不同格式(4.4.4 上的 3gp4 - 5.1.1 上的 mp42)。然而,VLC“坚持”两者都使用 AAC,但显示出非常不同的采样率,4.4.4 文件为 8k,5.1.1 文件为 48k。

有人知道为什么吗?

最佳答案

尝试设置所有这些:

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); //I would use MediaRecorder.AudioEncoder.AMR_NB
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(outputFile.getAbsolutePath());
recorder.prepare();
recorder.start();

或使用外部库:http://rehearsalassist.svn.sourceforge.net/viewvc/rehearsalassist/android/releases/RehearsalAssistant_0_8_2/src/urbanstew/RehearsalAssistant/

通过改变记录器:

 RehearsalAudioRecorder recorder = new RehearsalAudioRecorder(RehearsalAudioRecorder.RECORDING_UNCOMPRESSED, MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_CONFIGURATION_STEREO, AudioFormat.ENCODING_PCM_16BIT);
recorder.setOutputFile(outputFile.getAbsolutePath());
recorder.prepare();
recorder.start();

更新

还要检查这个:

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
if (Build.VERSION.SDK_INT >= 10) {
recorder.setAudioSamplingRate(44100);
recorder.setAudioEncodingBitRate(96000);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
} else {
// older version of Android, use crappy sounding voice codec
recorder.setAudioSamplingRate(8000);
recorder.setAudioEncodingBitRate(12200);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
}
recorder.setOutputFile(file.getAbsolutePath());
try {
recorder.prepare();
} catch (IOException e) {
throw new RuntimeException(e);
}

SDK低于10的设备好像录不出好画质

关于xml - Kitkat/Lollipop 上的音频质量差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35078589/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com