第27讲 cameracapturesession.capturecallback详解 -凯发k8旗舰厅

本讲是android camera专题系列的第27讲,我们介绍android camera2 api专题的cameracapturesession.capturecallback详解。

更多资源:

资源 描述
在线课程
知识星球 星球名称:深入浅出android camera
星球id: 17296815
wechat 极客笔记圈

cameracapturesession.capturecallback详解

用于监控camera hal处理某个capturerequest的处理状态

api description
oncapturestarted(session, request, long timestamp, long framenumber) 当camera hal开始处理这个capturerequest时调用,对应这一张图像开始曝光时。或者开始reprocess这个capturerequest时调用。
oncaptureprogressed(session, request, captureresult partialresult) camera hal pipeline中,部分模块完成这个capturerequest的处理,有partial result上报时调用。
oncapturecompleted(session, request, totalcaptureresult result) 这个capturerequest处理完成后调用,会打包所有的partial result一起上报给app。
oncapturebufferlost(session, request, surface target, long framenumber) 指定surface不会收到这个capturerequest处理后的buffer了,通常原因是底层处理这路stream发生错误或因flush而主动丢帧。
oncapturefailed(session, request, capturefailure failure) 整个capturerequest处理失败时调用,不会有totalcaptureresult了,oncapturecompleted不会被调用。如果capturefailure#wasimagecaptured为true则表示某些路surfaces可能会收到image buffer。
oncapturesequenceaborted(session, int sequenceid) 整个序列的capturerequest放弃继续处理时调用,通常是由于stoprepeating 或 abortcaptures调用了
oncapturesequencecompleted(session, int sequenceid, long framenumber) 整个序列的capturerequest处理完后调用,sequence id等于调用送capturerequest方法(ex. capture)的返回值

oncapturestarted

app如何使用

  • 针对拍照的capturerequest,比较适合在这个callback中播放拍照声音,提示用户开始拍照了

参数

  • request:正在处理的capturerequest实例
  • timestamp

    • regular capturerequest:这一帧图像开始曝光时的时间戳
    • reprocess capturerequest:输入图像开始曝光时的时间戳

    • 通常用于同步captureresult和image

framenumber

  • 这一帧的编号,与captureresult#getframenumber获取到的值一样

oncaptureprogressed

调用次数和时机

  • 处理一个capturerequest,可能会有多次oncaptureprogressed回调。最多回调cameracharacteristics#request_partial_result_count次

不同capturerequest可以有不同的回调次数

可能发生在oncapturestarted之前或之后

每次回调的partial result内容都不重复

app如何使用

  • 在性能要求高的场景中,app可以在partial result里面去查询关心的metadata值,避免在totalcaptureresult上来时才去查询
    • 比如需要插入到数据库的信息或后处理image buffer时需要的信息

cameracapturesession.capturecallback状态转换

cameracapturesession.capturecallback状态转换

camera课程

python教程

java教程

web教程

数据库教程

图形图像教程

办公软件教程

linux教程

计算机教程

大数据教程

开发工具教程

android camera2 api

网站地图