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,這兩個類,是用來轉換自己定義的參數和相機的參數的,我考慮,可能是因爲多個相機不同的參數,這時出來進行了統一。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章