Mediarecorder setParameter失败(setAudioSamplingRate)

时间:2013-04-29 08:43:03

标签: android audio parameters mediarecorder sampling

我尝试构建一个有记录功能的应用程序。我希望用户能够选择记录质量,其中一个选项是AAC记录。我正在使用下面的代码,但是我在设置audioSamplingRate时遇到错误......有什么想法吗?

mediaRecorder = new MediaRecorder();
                    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
                    mediaRecorder.setAudioSamplingRate(96000);
                    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

和错误

04-29 10:32:17.477: E/MediaRecorder(18750): setParameters(audio-param-sampling-rate=96000) failed: -22
04-29 10:32:17.477: E/com.test.com.AudioRecorder(18750): setParameter failed.
04-29 10:32:17.477: E/com.test.com.AudioRecorder(18750): prepare() method called on illegal state

1 个答案:

答案 0 :(得分:0)

设备不支持每个音频采样率。因此,如果它不受支持,它将给出错误或在内部剪切使其适合。为了质量,您可以设置音频编码比特率与采样率。所有Android设备根据其audiorecorder文档支持44100采样率。您可以使用比特率根据您的需要。这个公式可以帮助你

比特率=(采样率)×(比特深度)×(信道数)

Android设备中的位深度通常为8。