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

目录

        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,这两个类,是用来转换自己定义的参数和相机的参数的,我考虑,可能是因为多个相机不同的参数,这时出来进行了统一。

你可能感兴趣的:(Android,Github代码分析)