android MediaRecorder 视频录制
16lz
2021-12-04
package com.example.camera;import java.io.IOException;import android.app.Activity;import android.media.MediaRecorder;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceView;public class MainActivity extends Activity implements SurfaceHolder.Callback {private SurfaceView mSurfaceview = null; // SurfaceView对象:(视图组件)视频显示private SurfaceHolder mSurfaceHolder = null; // SurfaceHolder对象:(抽象接口)SurfaceView支持类private MediaRecorder mediarecorder;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mSurfaceview = (SurfaceView) findViewById(R.id.surfaceview);mSurfaceHolder = mSurfaceview.getHolder(); // 绑定SurfaceView,取得SurfaceHolder对象mSurfaceHolder.addCallback(this); // SurfaceHolder加入回调接口mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);// 設置顯示器類型,setType必须设置}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {}@Overrideprotected void onPause() {super.onPause();mediarecorder.stop();mediarecorder.release();}@Overridepublic void surfaceCreated(SurfaceHolder holder) {mediarecorder = new MediaRecorder();// 创建mediarecorder对象// 设置录制视频源为Camera(相机)mediarecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);// 设置录制完成后视频的封装格式THREE_GPP为3gp.MPEG_4为mp4mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);// 设置录制的视频编码h263 h264mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);// 设置视频录制的分辨率。必须放在设置编码和格式的后面,否则报错// mediarecorder.setVideoSize(176, 144);// 设置录制的视频帧率。必须放在设置编码和格式的后面,否则报错mediarecorder.setVideoFrameRate(20);mediarecorder.setPreviewDisplay(mSurfaceHolder.getSurface());// 设置视频文件输出的路径mediarecorder.setOutputFile("/sdcard/love.3gp");try {mediarecorder.prepare();mediarecorder.start();} catch (IllegalStateException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {}}
参考:http://blog.sina.com.cn/s/blog_972577b3010108p1.html
更多相关文章
- android EditText组件
- Android_在线视频播放器
- Android(安卓)闹钟以及通知
- android ComponentName 示例
- android透明状态栏
- android 在线视频播放器实现方法
- Android(安卓)打开Activity后,不显示键盘
- android 用VideoView播放本地视频文件
- 进度条及拖动条背景颜色设置(progressDrawable)