【发布时间】:2013-11-26 06:33:37
【问题描述】:
我有一个应用程序可以录制音频并将其保存在 SD 卡中。当我检查录制的音频时,录制的音频文件的比特率始终为零 (0 kbps)。文件格式为 MP3。下面是我的代码
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mRecorder.setMaxDuration(60000);
mRecorder.setAudioSamplingRate(44100);
mRecorder.setAudioEncodingBitRate(96000);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
请提出可能是什么问题以及解决方案是什么。谢谢。
【问题讨论】:
-
您如何确定比特率?数据是否写入文件? 0kbps 意味着文件将为空。
-
@Zharf 当我在 Windows 7 中专注于文件时,我可以看到比特率。它显示为 0 kbps。文件仍在播放。
-
我会说 Windows 更有可能无法测量比特率,mp3 就是这样狡猾的,尤其是可变比特率的。尝试在 foobar2000 或其他东西中打开文件,看看它说了什么。在任何情况下,如果你得到一个包含可播放数据的文件,它肯定不是 0 kbps,因为这意味着音频每秒需要 0 位,这将导致一个空文件......
-
我在 foobar2000 中打开了音频,它播放得很好。
-
@Zharf 谢谢。您的评论就是答案。音频文件没有正常显示比特率,但是当我在 foobar2000 中打开它时,它在播放时显示了比特率。再次感谢。请发布以上评论作为答案,我会接受答案。
标签: android android-audiomanager