第23讲 capturerequest详解 -凯发k8手机登录

本讲是android camera专题系列的第23讲,我们介绍android camera2 api专题的capturerequest详解。

更多资源:

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

capturerequest介绍

capturerequest介绍

capturerequest可以理解为告诉camera底层如何处理某一帧数据,包括两部分内容

  • settings
    • 硬件相关的参数:sensor, lens, flash等
    • isp processing pipeline相关参数

    • 3a相关参数

  • output surfaces

    • capturerequest中带的surfaces必须在创建session时使用的surface list的子集

通过capturerequest.builder来创建capturerequest

通过不同的方式送给camera底层

  • capture
  • captureburst

  • setrepeatingrequest

  • setrepeatingburst

capturerequest类型(通过capturerequest#isreprocess()可以判断)

  • regular:cameradevice#createcapturerequest
  • reprocess:cameradevice#createreprocesscapturerequest

capturerequest.builder介绍

builder模式:用于设置capturerequest参数和创建capturerequest对象

api description
set(key key, t value) 设置指定key对应的value值
setphysicalcamerakey(key key, t value, string physicalcameraid) 设置指定physical camera中key对应的value值
addtarget(surface outputtarget) 增加一路输出流
settag(object tag) 给capturerequest设置一个tag,用于标识该capturerequest,底层在oncapturecompleted回调时,可以通过capturerequest#gettag()获取到
build() 创建capturerequest对象
get(key key) 获取指定key对应的value
getphysicalcamerakey(key key, string physicalcameraid) 获取指定physical camera中key对应的value值
removetarget(surface outputtarget) 删除一路输出流

capturerequest template type介绍

capturerequest template type介绍

创建capturerequest.builder

api description
createcapturerequest(int templatetype) 根据template type创建capturerequest.builder,注意:这里返回的是带一包默认值的,不同的cameradevice,这包默认值会不一样,因此不能混用。
createcapturerequest(int templatetype, set physicalcameraidset) 根据template type和physical cameraid set创建capturerequest.builder,通过builder#setphysicalcamerakey可以设置指定physical camera的参数。 physical camera的参数只适用于有physical camera outputconfiguration的情况(outputconfiguration#setphysicalcameraid)。 physicalcameraidset来自cameracharacteristics#getphysicalcameraids()
createreprocesscapturerequest (totalcaptureresult inputresult) 根据totalcaptureresult创建用于reprocess的capturerequest.builder

如何设置physical camera的capturerequest

如何设置physical camera的capturerequest

  1. 判断能否单独控制logical multicamera中的physical camera
    (cameracharacteristics#getphysicalcameraids

  2. 或者可以设置的physical camera keys
    (cameracharacteristics#getavailablephysicalcamerarequestkeys

  3. 创建physical camera outputconfiguration
    (outputconfiguration#setphysicalcameraid

  4. 创建capturerequest.builder

  5. setphysicalcamerakey

  6. addtarget

  7. 获取physical totalcaptureresult
    (totalcaptureresult#getphysicalcameratotalresults

camera课程

python教程

java教程

web教程

数据库教程

图形图像教程

办公软件教程

linux教程

计算机教程

大数据教程

开发工具教程

android camera2 api

网站地图