[英]How to Record voice with Audio MimeType in Android
我想以純音頻格式錄制語音。 目前我正在使用此代碼
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”。 我需要的是任何音頻啞劇類型。
EDIT1正如Headuck建議,我改變了我的代碼
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
mFileName += "/abc.aac";
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
使用“ audio / x-hx-aac-adts” mime類型可以完美錄制音頻。 謝謝Headuck 。
但是我的問題是:
我正在使用Cloud端點將此文件上傳到Google雲端硬盤。 然后,當我打開文件時,它說“糟糕!。播放該文件時出現問題”。 我需要像“ MP3”文件一樣播放文件。
Google雲端硬盤是否支持“ ACC”格式? 如果沒有,請提出替代方案。
請幫忙。
如果只需要將mime類型更改為audio
類型,則可以在記錄器的stop()
和release()
之后嘗試以下操作stop()
為清楚起見,省略了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);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.