我想以纯音频格式录制语音。 目前我正在使用此代码
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类型完美匹配。谢谢 Headuck 。
但我的问题是:
我使用云端点将此文件上传到Google云端硬盘。然后,当我打开文件时,它说“糟糕..!播放此文件时出现问题”。我需要将文件播放为播放“MP3”文件。
Google云端硬盘是否支持“ACC”格式?如果没有,请建议替代方案 请帮忙。
答案 0 :(得分:0)
如果您只需要将mime类型更改为audio
,则可以在录像机的stop()
和release()
之后尝试以下操作(为了清晰起见省略了try-catch块) ):
mRecorder.stop();
mRecorder.release();
// Set the mime type to audio
String[] paths = {mFileName};
String[] mimeTypes = {"audio/mp4"};
MediaScannerConnection.scanFile(getApplicationContext(),
paths,
mimeTypes,
new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
System.out.println("SCAN COMPLETED: " + path);
}
});