2015-09-07 55 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