CameraCaptureSession.SetRepeatingRequest
App 调用该方法开始预览流程,通过层层调用最终会调用到Framework中的submitCaptureRequest方法,该方法主要作了两件事:
-
首先调用CameraService层CameraDeviceUser的submitRequestList方法,将此次Request下发到Cameraervice中
-
其次App通过参数传入的CameraCaptureSession.CaptureCallback对象存到CameraDeviceImpl对象中
/*CameraCaptureSession.java*/
public abstract int setRepeatingRequest(CaptureRequest request, CaptureCallback listener, Handler handler) throws CameraAccessException;
/*CameraCaptureSessionImpl.java*/
public synchronized int setRepeatingRequest(CaptureRequest request, CaptureCallback callback, Handler handler) throws CameraAccessException{
...
handler = CameraDeviceImpl.checkHandler(handler, callback);//获取Looper并创建handler
return this.addPendingSequence(this.mDeviceImpl.setRepeatingRequest(request, this.createCaptureCallbackProxy(handler, callback), this.mDeviceHandler));
}
/*CameraD