码迷,mamicode.com
首页 > 移动开发 > 详细

Android 开发 Camera类的拍照与录像

时间:2018-10-29 17:58:58      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:指定   应用   params   view   构造   个数   smooth   lease   ++   

前言    

  在开发Android应用的时候,如果需要调用摄像头拍照或者录像,除了通过Intent调用系统现有相机应用进行拍照录像之外,还可以通过直接调用Camera硬件去去获取摄像头进行拍照录像的操作。本篇博客将讲解如何在Android应用中通过Camera拍照录像。

  参考博客:https://www.cnblogs.com/plokmju/p/android_Camera.html

 

 

 

 

 

 

 

Camera api 说明

  Camera是Android摄像头硬件的相机类,位于硬件包"android.hardware.Camera"下。它主要用于摄像头捕获图片、启动/停止预览图片、拍照、获取视频帧等,它是设备本地的服务,负责管理设备上的摄像头硬件。

  Camera既然用于管理设备上的摄像头硬件,那么它也为开发人员提供了相应的方法,并且这些方法大部分都是native的,用C++在底层实现,下面简单介绍一下Camera的一些方法:

api 说明
open() 打开Camera,返回一个Camera实例。
open(int cameraId) 根据cameraId打开一个Camera,返回一个Camera实例。
release() 释放掉Camera的资源。
getNumberOfCameras() 获取当前设备支持的Camera硬件个数。
getParameters() 获取Camera的各项参数设置类。
setParameters(Camera.Parameters params) 通过params把Camera的各项参数写入到Camera中。
setDisplayOrientation(int degrees) 摄像预览的旋转度。
setPreviewDisplay(SurfaceHolder holder) 设置Camera预览的SurfaceHolder。
starPreview() 开始Camera的预览。
stopPreview() 停止Camera的预览
setPreviewCallback() 设置预览回调
reconnect() 重新连接
autoFocus(Camera.AutoFocusCallback cb) 自动对焦
cancelAutoFocus() 取消启动对焦
setAutoFocusMoveCallback() 自动对焦移动回调
takePicture(Camera.ShutterCallback shutter,Camera.PictureCallback raw,Camera.PictureCallback jpeg) 拍照。
enableShutterSound() 启用快门声音
lock() 锁定Camera硬件,使其他应用无法访问。
unlock() 解锁Camera硬件,使其他应用可以访问。
startFaceDetection() 启动人脸识别
stopFaceDetection() 停止人脸识别
setFaceDetectionListener() 人脸识别监听回调
setPreviewCallback() 设置预览回调
setPreviewCallbackWithBuffer() 设置预览缓冲回调
setOneShotPreviewCallback() 设置一个镜头预览回调
setErrorCallback() 设置异常回调
startSmoothZoom() 启动平滑缩放
stopSmoothZoom() 停止平滑缩放
setZoomChangeListener() 缩放监听
setPreviewTexture() 设置预览纹理

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

上面已经介绍了Camera的常用方法,下面根据这些方法详细讲解Android下使用Camera开发拍照应用最基本的过程:

  1. 使用open()方法获取一个Camera对象,鉴于Android设备可能配置了多个摄像头,open()方法可以通过摄像头Id开启指定的摄像头。
  2. 为Camera对象设置预览类,它是一个SurfaceHolder对象,通过setPreviewDisplay(SurfaceHolder)方法设置。
  3. 调用startPreview()方法开始Camera对象的预览。
  4. 调用takePicture()方法进行拍照,其中可以通过Camera.PictureCallback()回调获得拍摄的Image数据。
  5. 当拍摄完成后,需要调用stopPreview()方法停止预览,并使用release()释放Camera占用的资源。

  以上介绍的步骤都是最基本的过程,是必不可少的。Camera没有提供公开的构造函数,只能通过open()方法获取,并且必须设置一个预览类SurfaceHolder,如果不设置的话,将无法使用Camera。在使用完成Camera之后,必须使用release()释放Camera资源。

 

Parameters api 说明:

 

    

Android 开发 Camera类的拍照与录像

标签:指定   应用   params   view   构造   个数   smooth   lease   ++   

原文地址:https://www.cnblogs.com/guanxinjing/p/9871971.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!