流程圖
APP 層應(yīng)用參數(shù)設(shè)置
mCameraDevice.applySettings(mCameraSettings);
frameworks 層獲取參數(shù)設(shè)置發(fā)送獲取圖像的請求
private void applyToRequest(AndroidCamera2Settings settings) {
// TODO: If invoked when in PREVIEW_READY state, a new preview size will not take effect
// 獲取所有的參數(shù)設(shè)置侨把,然后放到一個 Map 集合
// 創(chuàng)建捕獲請求時會調(diào)用 CaptureRequest.Builder.set() 設(shè)置捕獲請求的參數(shù)設(shè)置
mPersistentSettings.union(settings.getRequestSettings());
...
// If we're already previewing, reflect most settings immediately
try {
// 向相機設(shè)備發(fā)送獲取圖像的請求
mSession.setRepeatingRequest(
mPersistentSettings.createRequest(mCamera,
CameraDevice.TEMPLATE_PREVIEW, mPreviewSurface)/*創(chuàng)建一次捕獲請求*/,
/*listener*/mCameraResultStateCallback, /*handler*/this);
} catch (CameraAccessException ex) {
Log.e(TAG, "Failed to apply updated request settings", ex);
}
...
}