目录

        android下自定义相机com.otaliastudios.cameraview源码解析(一)

android下自定义相机com.otaliastudios.cameraview源码解析(二)

这里要分析是Engine类,下面一共有下面几个包action、lock、mappers、meter、offset五个包。分别实现不同的功能。

cameraEngine是抽象类,下面有两个实现类,分别是Camera1Engine和Camera2Engine,分别代表了camera1和camera2两个相机的实现,

CameraEngine类,定义了Callback函数,目前还不知道用来干什么的,应该拍照后的回调。

继承了【PictureRecorder.PictureResultListener】和【VideoRecorder.VideoResultListener】两个接口,实现对照后的处理,

CameraEngine类

视频和图片的处理

是否是拍照

isTakingPicture

拍照

takePicture

拍快照

takePictureSnapshot

图片处理结果

onPictureResult

是否是视频

isTakingVideo

拍视频

takeVideo

拍视频快照

takeVideoSnapshot

停止视频

stopVideo

视频处理结果

onVideoResult

尺寸处理

得到图片尺寸

getPictureSize

得到视频尺寸

getVideoSize

得到流

getPreviewStreamSize

得到前支架尺寸

getPreviewSurfaceSize

统计尺寸

computeCaptureSize

统计前流尺寸

computePreviewStreamSize

 

开始与结束

开始

start

停止

stop

重新开始

restart

释放

destroy

开始绑定

startBind

停止绑定

stopBind

重新绑定

restartBind

开始预览

onStartPreview

停止预览

onStopPreview

重新预览

restartPreview

开始引擎onStartEngine

 

停止引擎onStopEngine

 

状态与步骤

是否开始绑定

canStartBind

是否开始引擎

canStartEngine

是否停止预览

canStartPreview

得到绑定状态

getBindState

得到预览状态

getPreviewState

得到引擎状态

getEngineState

需要停止绑定

needsStopBind

需要停止引擎

needsStopEngine

 需要停止预览

needsStopPreview

Action类

BaseAction类,是引擎所有行为类的父类,包括Basemeter,BaseReset,BaseLock都是继承于这个类。主要为以下三个行为

Exposure(曝光),Focus(聚焦), WhiteBalance(白平衡),这三种操作

meter测试类

Basemeter类,下面有三个类,ExposureMeter,FocusMeter,WhiteBalanceMeter,这三个类是测试相机。

BaseReset类,下面有三个类,ExposureReset,FocusReset,WhiteBalanceReset,这三个类是测试相机。

上面的类都是在MeterAction中调用的

MeterAction,MeterResetAction类,是在Camera2Engine类中使用

Lock类

这个类也是继承于BaseAction,下面有三个类ExposureLock、FocusLock、WhiteBalanceLock,还有一个综合的类LockAction,是用来综合使用的。

Mapper映射器

这里有两个类一个是Camera1Mapper,一个是Camera2Mapper,这两个类,是用来转换自己定义的参数和相机的参数的,我考虑,可能是因为多个相机不同的参数,这时出来进行了统一。