android--拍照,录像

来源:互联网 发布:c语言选择结构编程题 编辑:程序博客网 时间:2024/05/22 14:41
1.拍照实现步骤:
 <1>界面使用SurfaceView控件,显示照相机的画面
 <2>SurfaceView接受摄像头界面变化的信息
  surfaceView.getHolder().addCallback()
 <3>重写三个方法
  surfaceDestroyed--->当预览界面关闭时,触发
   一般在这里执行销毁照相机的操作,释放内存
   camera.stopPreview();
   camera.release();
   camera = null;
  surfaceCreated----->预览界面被创建时,调用
   一般在这里打开照相机和设置照相机的一些参数
   // 打开摄像头
   camera = Camera.open();
   // 给摄像头设置参数
   Parameters parameters = camera.getParameters();
   // 设置每秒3栈
   parameters.setPreviewFrameRate(3);
   // 设置照片的输出格式
   parameters.setPictureFormat(PixelFormat.JPEG);
   // 设置照片的质量
   parameters.set("jpeg-quality", 85);
   // 给照相机设置参数
   camera.setParameters(parameters);
   //将摄像头的画面显示到SurfaceView控件上
   camera.setPreviewDisplay(sv_main_camera.getHolder());
   // 开始预览
   camera.startPreview();
  surfaceChanged----->当预览界面的格式和大小发生改变时,触发
 <4>保存
  camera.takePicture
  将照片保存到内存卡(压缩)
2.视频录制
 实现步骤:
 <1>将视频动画显示到SurfaceView控件上
 <2>使用MediaRecorder类进行视频的录制
  常用的方法:
  mediaRecorder.reset();
  mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //从照相机采集视频
  mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
  mediaRecorder.setVideoFrameRate(3); //每秒3帧
  mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); //设置视频编码方式
  mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  File videoFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".3gp");
  mediaRecorder.setOutputFile(videoFile.getAbsolutePath());
  mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
  mediaRecorder.prepare();//预期准备
  mediaRecorder.start();//开始刻录
  mediaRecorder.stop();//停止刻录
注意:权限
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
3 0
原创粉丝点击