2015-09-07 54 views
0

我嘗試調用默認的錄音機意圖和sdcard.I發送路徑錄音機比節省的聲音在我的道路使用此代碼:調用錄音機意圖和保存的聲音在SD卡

File audioFile = new File(Environment.getExternalStorageDirectory().getPath() + "/nabege" + File.separator + "audio" 
      + File.separator + System.currentTimeMillis() + ".amr"); 
    Uri audioUri = Uri.fromFile(audioFile); 
    record_audio_Intent.putExtra(MediaStore.EXTRA_OUTPUT, audioUri); 
    startActivityForResult(record_audio_Intent, 0); 

這應用將語音保存在默認路徑中。此路徑(nabege /音頻)在SD卡中創建並存在。請幫助

+0

你有什麼問題? –

+0

我想錄制語音保存在SD卡/ NABEGE /音頻,但它保存在默認路徑。 – programmer138200

+0

嘗試Environment.getExternalStorageDirectory()getAbsolutePath() – Bhargav

回答

2

通過意向錄音總是將錄製的文件保存到SD卡的根目錄(或默認路徑)。此外,某些手機型號可能不支持此意圖。

如果要將錄製的文件保存到自定義路徑,則必須直接使用MediaRecorder。

像這樣:

MediaRecorder recorder = null; 

private void startRecording(File file) { 
    if (recorder != null) { 
     recorder.release(); 
    } 
    recorder = new MediaRecorder(); 
    recorder.setAudioSource(AudioSource.MIC); 
    recorder.setOutputFormat(OutputFormat.THREE_GPP); 
    recorder.setAudioEncoder(AudioEncoder.AMR_WB); 
    recorder.setOutputFile(file.getAbsolutePath()); 
    try { 
     recorder.prepare(); 
     recorder.start(); 
    } catch (IOException e) { 
     Log.e("giftlist", "io problems while preparing [" + 
      file.getAbsolutePath() + "]: " + e.getMessage()); 
    } 
} 
+0

我可以用這種方式暫停音頻記錄嗎?如果你的答案是肯定的:這是怎麼回事? – programmer138200

+0

MediaRecorder沒有暫停和恢復方法。您需要改用stop和start方法。一種方法是:您可以將原始數據記錄到臨時文件中,當您想要暫停時,停止記錄並將輸出追加到實際的目標文件中,並在記錄會話結束時內錄整個原始數據。這有點特里奇 - 但這裏有一個例子:https://github.com/lassana/continuous-audiorecorder –

+0

謝謝你。我嘗試使用這個示例。 – programmer138200