安卓:使用MediaRecorder录制音视频

首先在清单文件中添加权限(当然动态的权限也可以,看个人情况吧):

    //读写SD卡
    
    
     //相机
    
    //录音机
    

XML布局中写一个surfaceview:

 

创建mediaRecorde对象:

  if (mediaRecorder==null){
            mediaRecorder=new MediaRecorder();
        }

重写出SurfaceHolder.Callback的三个方法:
在重写的surfaceCreated中:

        //设置麦克风
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        //设置摄像头
        mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        //设置旋转角度(感觉没啥用)
        mediaRecorder.setOrientationHint(270);
        //设置声道(双声道)
        mediaRecorder.setAudioChannels(2);
        //文件路径
        File file = new File(Environment.getExternalStorageDirectory(),"a22.mp4");
        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //设置格式
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        //音频编码格式
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        //视频编码格式
        mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        mediaRecorder.setPreviewDisplay(holder.getSurface());
        //存储的路径
        mediaRecorder.setOutputFile(file.getPath());

自己写个按钮的点击事件:

//准备
 mediaRecorder.prepare();
 //开始
 mediaRecorder.start();
 //停止
  mediaRecorder.stop();

你可能感兴趣的:(安卓:使用MediaRecorder录制音视频)