java - 使用媒体录音机在 Android 中录制音频

标签 java android android-mediarecorder voice-recording

我使用媒体记录器类来录制语音并将其上传到网络服务器,但我不知道录制语音的文件何时完全写入SD卡上。

你知道有一个界面可以帮助我查明文件是否完整保存在SD卡上吗?

最佳答案

你自己不停止录音吗?如果我处于像您这样的情况,我会这样做。

  1. 创建一个 MediaRecorder 对象并设置以下属性:

    private MediaRecorder myAudioRecorder; 
    String outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recording.3gp";
    myAudioRecorder=new MediaRecorder();
    myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
    myAudioRecorder.setOutputFile(outputFile);
    
  2. 通过单击录制按钮调用这些方法来开始录制:

    record.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                myAudioRecorder.prepare();
                myAudioRecorder.start();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Toast.makeText(getApplicationContext(), "Recording started", Toast.LENGTH_LONG).show();
        }
    });
    
  3. 单击停止按钮即可停止录制,然后上传文件:

    stop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myAudioRecorder.stop();
            myAudioRecorder.release();
            myAudioRecorder  = null;
    
            Toast.makeText(getApplicationContext(), "Audio recorded successfully",Toast.LENGTH_LONG).show();
    
            doUpload(outputFile); //call the method to upload your file and perform upload.
        }
    });
    

一旦您停止mediaRecorder并释放它,录制的文件就会保存在您的存储卡中,因此您不必担心。之后立即上传您的文件即可。

关于java - 使用媒体录音机在 Android 中录制音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378755/

相关文章:

java - Eclipse/Flash Builder 文件搜索的正则表达式是否有评论?

java - 使用 Maven 生成 Eclipse 项目文件

android - 使用 DayNight 主题时更改启动屏幕中的背景颜色

android - 如何在按钮单击事件中调用异步任务

android - 在不同的 Android 版本上动态更改工具栏菜单项文本颜色

基于 Java spring 的 webapp 与纯 javascript webapp

java - 让xjc生成成员变量名与元素名完全相同的类

android - 如何在android中录制质量更好的音频文件?

android - MediaRecorder.setVideoFrameRate() 没有任何效果

Android 屏幕录制操作方法 - 横向录制、录制的视频以全屏与部分屏幕播放