遲到了3個月。。
參考項目https://github.com/pinguo-yuyidong/Camera2
camera2拍照過程大概如圖所示
1.通過系統CameraManager和目標攝像頭id,獲取攝像頭硬件類CameraDevice
2.CameraDevice新建CaptureRequest.Builder,這個構建類請求中存放拍照/取景的具體參數配置。建立時通過createCaptureRequest (int templateType)構建方法設置工作模式(取景,拍照,錄像等)。建立后通過配置參數設置具體拍照屬性(快門時間,感光度,白平衡,對焦參數,變焦,ae,af等)。
3.CameraDevice通過createCaptureSession方法,建立CaptureSession,完成后會自動開始調用回調函數CameraCaptureSession.StateCallback
4.在CameraCaptureSession.StateCallback中,為CameraCaptureSession配置工作模式(單張拍攝,多請求拍攝,無腦連拍等),配置完成攝像頭開始工作。
5.單次采樣完成后,自動調用CameraCaptureSession.CaptureCallback。在這里面可以進行增加圖片濾鏡,保存原始文件等操作。
6所有請求完成后結束工作