标签:指定 应用 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开发拍照应用最基本的过程:
以上介绍的步骤都是最基本的过程,是必不可少的。Camera没有提供公开的构造函数,只能通过open()方法获取,并且必须设置一个预览类SurfaceHolder,如果不设置的话,将无法使用Camera。在使用完成Camera之后,必须使用release()释放Camera资源。
Parameters api 说明:
标签:指定 应用 params view 构造 个数 smooth lease ++
原文地址:https://www.cnblogs.com/guanxinjing/p/9871971.html