【发布时间】:2015-12-12 19:33:31
【问题描述】:
我想以纯音频格式录制语音。 目前我正在使用此代码
public static void startRecording(String fileName) {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
String mFileName = Environment.getExternalStorageDirectory()
.getAbsolutePath();
mFileName += "/abc.mp3";
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
mRecorder.start();
} catch (IOException e) {
Log.e(TAG, "prepare() failed");
}
}
这将文件显示为 mp3,但内部文件内容的 mime 类型为“video/mp4”。我需要的是任何音频 mime 类型。
EDIT1 根据 Headuck 的建议,我将代码更改为
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
mFileName += "/abc.aac";
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
使用“audio/x-hx-aac-adts”mime 类型完美录制了音频。谢谢头疼。
但是我的问题是:
我正在使用云端点将此文件上传到 Google 云端硬盘。然后,当我打开文件时,它说“糟糕......!播放此文件时出现问题”。我需要将文件作为“MP3”文件播放。
Google 云端硬盘是否支持“ACC”格式?如果不是,请提出替代方案。
请帮忙。
【问题讨论】:
-
您是否查阅过
setOutputFormat()和developer.android.com/reference/android/media/… 上的文档? -
感谢您的回复。我已经看到了。但我不明白如何录制纯音频。请帮忙
-
AAC_ADTS 是一种音频格式,如果您不想要 MPEG4 容器,请参阅 stackoverflow.com/questions/21552297/…
-
您是否尝试改用
mFileName += "/abc.mp4";?
标签: android google-drive-api android-mediarecorder