欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android视频录制_SurfaceView录像拍摄视频Demo下载

程序员文章站 2022-03-01 12:53:32
...

记得在前面几天分享了一个调用Android默认相机摄像的Demo、其实那个体验非常好、但唯一不理想的就是不能设置视频的分辨率、导致视频很大、平均1秒要消耗2M空间

因为这个视频是要上传服务器的、10S的视频足足有20M、这样肯定不行、所以就想的自己用SurfaceView自定义一个视频录相机、现在这个相机已经基本上可以用了、分辨率是176 * 144(可自定义)、这个样子10S的视频大概也就1M多一点、分享一下、希望对一些做视频的哥们有用、效果图如下

Android视频录制_SurfaceView录像拍摄视频Demo下载


开始录制代码

try{
    File videoFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()  ".mp4");
    mediaRecorder = new MediaRecorder();
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    mediaRecorder.setVideoSize(320, 240);
    mediaRecorder.setVideoFrameRate(5);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mediaRecorder.setOutputFile(videoFile.getAbsolutePath());
    mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
    mediaRecorder.prepare();
    mediaRecorder.start();
}catch (Exception e) {
    e.printStackTrace();
}
recordbutton.setEnabled(false);
stopbutton.setEnabled(true);


停止录制代码

if(mediaRecorder!=null){
    mediaRecorder.stop();
    mediaRecorder.release();
    mediaRecorder = null;
}
recordbutton.setEnabled(true);
stopbutton.setEnabled(false);


最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看

源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1kT5usrP 密码: gzc3