CameraAppFramework流程之setRepeatingRequest

本文探讨了Android应用调用CameraCaptureSession.setRepeatingRequest启动预览过程的内部机制。该调用最终在框架层触发submitCaptureRequest,请求被发送到CameraService,并通过CaptureCallback回调在CameraDeviceImpl中处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值