有意识地调用录音机并在SD卡中保存语音

时间:2015-09-07 06:05:06

标签: android audio android-intent

我尝试使用intent调用默认录音机并将录音路径发送到录音机,而不是在sdcard中保存语音。我使用此代码:

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 / audio)在sdcard中创建并存在。请帮助

1 个答案:

答案 0 :(得分: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());
   }
}