MediaRecorder的坑

  • 首先一些API的调用时有顺序的,否则会报错崩溃
  • 权限一定要先运行申请并且允许,再初始化mediaRecorder
  • surfaceview是一定需要的,否则录不起
  •     private void init() {
    
            mediaRecorder = new MediaRecorder();
            mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
            mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
            mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
            mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    
            mediaRecorder.setVideoSize(480,360);
            mediaRecorder.setVideoFrameRate(20);
            mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
            mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/DCIM/today.mp4");
        }
    

      

  • setVideoSize 值一定要传对,也就是camera支持的分辨率
  • 开始录制
       if (mediaRecorder != null){
    
                        try {
                            //准备录制
                            mediaRecorder.prepare();
                            //开始录制
                            mediaRecorder.start();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
    

      

  • 结束录制
      if(mediaRecorder != null){
                        //停止录制
                        mediaRecorder.stop();
                        //释放资源
                        mediaRecorder.release();
                        //引用置为空
                        mediaRecorder = null;
                    }
    

      

  • 为了录制时有声音,必须加入下面两句,如果不加视频是没有声音的
    • mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    • mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  • 当然还需要些权限
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.CAMERA"/>
        <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    

      

posted on 2018-07-11 13:11  endian11  阅读(552)  评论(0编辑  收藏  举报

导航