一.简介
在撸项目和学习国外大佬撸代码的时候,看到了一个拍照的功能,觉得非常不错,看了源码。发现他的Camera是引用
compile
'com.commonsware.cwac:camera:0.6.12'
,它报了一个布局异常,说这个CameraView类不能被初始化看了代码没找出原因,百度也没搜到原因和解决方法。所以就索性去Gooogle官网去看了Camera的文档。顺便克服自己看英文文档就头疼的病吧。并且在这里把辛辛苦苦手敲的翻译笔记记一下。当自己不记得的时候,在回来回顾一下。然后在自己撸一个Camera类去返回到项目中去使用。接下来先贴出来官方的API文档的位置:官方Camera文档地址(我有翻译的不对的地方,大家可以跟我说,或者告诉我。)
二.Camera的介绍
1. 官方文档的翻译是这样的:
Android框架包括对设备上各种摄像头和摄像头功能的支持,允许您在应用程序中捕获图片和视频。本文档讨论了一种快速、简单的图像和视频捕获方法,并概述了为用户创建自定义相机体验的高级方法。
2. 我的理解是:可以通过这个解释来看,Camera是一个非常核心的类。他能够摄像和视频。那么需要做相应功能,都需要这个类。(给我自己看的)
三.Camera相关的类
1.android.hardware.camera2 (本人亲自测试,这个类找不到,只找到这个包名,我也不太清楚是为什么,可能我AS哪些地方配置不对,有大神可以留言告诉我)
这个包是私有的API为了控制照相设备,它能够拍照或者是拍视频,当你正在构建一个拍照的应用(APP)
这个包是私有的API为了控制照相设备,它能够拍照或者是拍视频,当你正在构建一个拍照的应用(APP)
2.Camera
这个类是最老的并且被废弃的API为了控制照相设备(通过这里可以看出,Android原生API中还是用上面的那个camera2,并且camera2是Camera的升级(名义上的))
这个类是最老的并且被废弃的API为了控制照相设备(通过这里可以看出,Android原生API中还是用上面的那个camera2,并且camera2是Camera的升级(名义上的))
3.SurfaceView
这个类是用来提供一个动态的照相机给用户(也就是说,用户实质上看到的照相机就是由它提供的)
4.MediaRecorder
这个类是被用来去记录从相机中获取的视频
5.Intent
一个Intent Action类型: MediaStore.ACTION_IMAGE_CAPTURE 或者 MediaStore.ACTION_VIDEO_CAPTURE 可以被用来去拍摄照片或者视频即使没有直接使用Camera类(从这里可以看出,可以直接唤起一个拍照的Actvity,可以推测就是android手机原生的拍照界面或者是原生的拍摄视频的界面)
PS:这里是我导入的情况,这里我没发现这个类,只找到这个包。而且官方文档里说的功能介绍是Camera类,这个camera2没介绍。所以暂时不管了
四.在Manifest中申明相应的权限
Manifeset的相关声明:
在开始使用Camera API 去完成你的应用之前,你应该确认你的manifest拥有恰当的声明去允许使用相机设备和其它相关联的特征
在开始使用Camera API 去完成你的应用之前,你应该确认你的manifest拥有恰当的声明去允许使用相机设备和其它相关联的特征
1.Camera Permission:你的应用必须请求允许去使用相机设备
<uses-permission android:name="android.permission.CAMERA" /> (这个好像是被例如了危险权限,必须要申明)
注释:如果你正在使用相机通过引用一个存在的相机APP,你的应用不必去请求这个permission(就是如果通过Intent去唤起别的APP的拍照功能,就不必声明这个权限)
2.Camera Features :你的应用必须也要申明相机部件的使用权限