如何以编程方式将录制的音频文件保存在另一个文件夹中?

Jov*_*ovi 3 android audio-recording voice-recording

我正在尝试将录制的音频文件保存在我想要的文件夹中,而不是默认文件夹.但不知怎的,我没有这样做.

我的代码:

Intent recordIntent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
Uri mUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "/Record/sound_"+ String.valueOf(System.currentTimeMillis()) + ".amr"));
recordIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri);
startActivityForResult(recordIntent, RESULT_OK);
Run Code Online (Sandbox Code Playgroud)

它确实调用了录音机应用程序.并且当我按下停止按钮时,它返回到我的应用程序并出现一个吐司,说它已保存.但是,而不是保存在我的记录文件夹中,它保存在默认文件夹中.

我意识到logcat中有错误信息:

01-29 01:34:23.900: E/ActivityThread(10824): Activity com.sec.android.app.voicerecorder.VoiceRecorderMainActivity has leaked ServiceConnection com.sec.android.app.voicerecorder.util.VRUtil$ServiceBinder@405ce7c8 that was originally bound here
Run Code Online (Sandbox Code Playgroud)

当我调用相机应用程序时,我不确定代码是否有效.

Abh*_*bhi 10

这样做,用MediaRecorder录制:

要开始录制:

public  void startRecording()
        {


                MediaRecorder recorder = new MediaRecorder();

                recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
                recorder.setOutputFile(getFilename());

                recorder.setOnErrorListener(errorListener);
                recorder.setOnInfoListener(infoListener);

                try 
                {
                        recorder.prepare();
                        recorder.start();
                } 
                catch (IllegalStateException e) 
                {
                        e.printStackTrace();
                } catch (IOException e) 
                {
                        e.printStackTrace();
                }
        }
Run Code Online (Sandbox Code Playgroud)

停止:

 private void stopRecording()
    {


            if(null != recorder)
            {     
                    recorder.stop();
                    recorder.reset();
                    recorder.release();
                   recorder = null;
            }
Run Code Online (Sandbox Code Playgroud)

对于选定文件夹:

 private String getFilename()
        {
                String filepath = Environment.getExternalStorageDirectory().getPath();
                File file = new File(filepath,AUDIO_RECORDER_FOLDER);

                if(!file.exists()){
                        file.mkdirs();
                }

                return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + ".mp3");
        }
Run Code Online (Sandbox Code Playgroud)