怎么能在电话录音机Android中压缩音频

时间:2017-02-19 20:01:01

标签: android audio-recording

我在Android Studio中使用此代码捕获音频 但尺寸音频大(1分钟= 1MB) 如何在没有质量损失的情况下压缩音频

AudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
AudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
AudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
AudioRecorder.setAudioChannels(1);
AudioRecorder.setAudioEncodingBitRate(44100);
AudioRecorder.setAudioSamplingRate(128000);

1 个答案:

答案 0 :(得分:0)

您将编码器设置为AMR_N8。大约1 MB /秒的声音适合该编码器。如果要压缩它,可以选择其他编码,例如Vorbis。

请注意,不同的编码器有不同的用途。如果没有质量损失,它们都不会压缩 - 我们将模拟声音转换为数字值,总会有质量损失。不同的编码器针对不同用途进行了优化。 AMR针对人声进行了优化。它过滤掉不在声音范围内的频率。这是一个质量损失,但它可能是你想要的(如在通话中)。你无法获得一切 - 你将不得不牺牲尺寸或质量。我建议你研究一下在https://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html找到的不同编码,然后找出最适合你的编码。