搭建Android Camera项目工程

0. 前言

这块内容非常简单,需要注意的有两个:

  • 需要申请相机权限
  • 需要一个Surface用来预览

1. 申请相机权限

1.1 申请Camera权限

<uses-permission android:name="android.permission.CAMERA" />

1.2 声明对应的特性

某个特性首先需要在manifest中申请对应特性

<uses-feature android:name="android.hardware.camera" />

1.3 其它权限

如果有拍照、录像、录音等申请对应的权限,此处略去

1.4 Camera特性如下

这块可以跳过,后面有用的时候再看

android.hardware.camera
应用使用设备的后置相机。只有前置相机的设备不会列出该功能,因此如果您的应用可与任何朝向的相机通信,请改用 android.hardware.camera.any 功能。

android.hardware.camera.any
应用使用设备的其中一个相机或用户为设备连接的外置相机。 如果您的应用不要求相机必须是后置式,请使用此值来替代 android.hardware.camera。

android.hardware.camera.autofocus
应用使用设备相机支持的自动对焦功能。

应用通过使用该功能暗示其还使用 android.hardware.camera 功能,除非这个父功能在声明时使用了 android:required=“false”。

android.hardware.camera.capability.manual_post_processing
应用使用设备相机支持的 MANUAL_POST_PROCESSING 功能。

您的应用可以通过该功能替换相机的自动白平衡功能。 使用 android.colorCorrection.transform、android.colorCorrection.gains 以及 TRANSFORM_MATRIX 的 android.colorCorrection.mode。

android.hardware.camera.capability.manual_sensor
应用使用设备相机支持的 MANUAL_SENSOR 功能。

android.hardware.camera.capability.raw
应用使用设备相机支持的 RAW 功能。

该功能暗示设备可以保存 DNG(原始)文件,并且设备的相机提供您的应用直接处理这些原始图像所需的 DNG 相关元数据。

android.hardware.camera.external
应用与用户为设备连接的外置相机通信。 但该功能不能保证外置相机可供您的应用使用。
android.hardware.camera.flash
应用使用设备相机支持的闪光功能。

应用通过使用该功能暗示其还使用 android.hardware.camera 功能,除非这个父功能在声明时使用了 android:required=“false”。

android.hardware.camera.front
应用使用设备的前置相机。

应用通过使用该功能暗示其还使用 android.hardware.camera 功能,除非这个父功能在声明时使用了 android:required=“false”。

android.hardware.camera.level.full
应用使用设备的至少一个相机提供的 FULL 级图像捕捉支持。 提供 FULL 支持的相机可提供快速捕捉功能、逐帧控制和手动后期处理控制。

2. Camera预览

做Android多媒体肯定要和SurfaceView,SurfaceTexture,TextureView打交道,关于这几个本文中不做展开,读者可以参考以前的文章:Android 图形系统结构 中/英 (Android Graphic Architecture),这篇文章内容略旧,Google也提供了中文文档:https://source.android.com/devices/graphics/

Camera可以设置三种输出:

  • MediaRecorder:这种方案基本被业界摒弃,唯一可能用到的地方就是兜底方案。所以这不是本文的重点。
  • Buffer:以Buffer的形式输出,这种方案存在性能问题。
  • SurfaceTexture:主流方案,通常拍照、小视频、直播都是采用这种方案,因为直接输出纹理,便于后期处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值