Camera2-CaptureRequest

2019-02-16  本文已影响0人  小斌_bingor
作用:

 从相机捕获单个图像,包含设置和输出
 包含硬件(传感器,镜头,闪存),处理管道,控制算法和输出缓冲区的配置。另包含接收图像数据的Surface列表
 创建好的CaptureRequest被用在CameraCaptureSession.capture(CaptureRequest, CameraCaptureSession.CaptureCallback, Handler) 或者 CameraCaptureSession.setRepeatingRequest(CaptureRequest, CameraCaptureSession.CaptureCallback, Handler)方法里,用来捕获图像
 每个请求都可以为相机指定一个接收数据的Surface子集,但是这些Surface必须是在最后一次创建会话的配置里面的,即最后一次调用的CameraDevice.createCaptureSession(SessionConfiguration)的SessionConfiguration里的
 可以创建图像重处理请求,允许将之前捕获的图像发回给相机进行进一步处理,调用CameraDevice.createReprocessCaptureRequest(TotalCaptureResult),生成的request将被用于
CameraDevice.createReprocessableCaptureSession(InputConfiguration, List, CameraCaptureSession.StateCallback, Handler)

获取:

 通过CameraDevice.createCaptureRequest(int)创建CaptureRequest.Builder,再通过Builder创建CaptureRequest

 嵌套类
  //CaptureRequest的构造器
  CaptureRequest.Builder
  //CaptureResult.get(CaptureResult.Key) 或者 CaptureRequest.Builder.set(Key, Object) 用的
  CaptureRequest.Key<T>
 公开方法
  //描述此Parcelable实例的封送表示中包含的特殊对象的种类。
  //例如,如果对象将在writeToParcel(Parcel,int)的输出中包含文件描述符,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR位。
  public int describeContents ()
  //比较两个CaptureRequest是否一致
  //比较条件:
  //key/values集合相等 && 输出的Surface列表相等 && user tag相等 && isReprocess()返回的值相等 
  public boolean equals (Object other)
  //获取一个CaptureRequest的字段值

  //Querying the value for the same key more than once will return a value which is equal to the previous queried value.
  //多次查询同一个Key,将返回一个等于上一次查询的值(不懂啥意思了。。。有待实际使用中验证)
  
  public T get (Key<T> key)

  //key值无效,将返回IllegalArgumentException
  //获取所有可用的key
  //返回的key列表不可修改,强行修改将抛出UnsupportedOperationException异常
  public List<Key<?>> getKeys ()
  //获取一个CaptureRequest的标记(如果有的话)
  //这个tag不由相机使用,而是在CaptureCallback.onCaptureCompleted被调用时,用来识别返回回来的CaptureRequest
  public Object getTag ()
  //Flatten this object in to a Parcel.
  //将此对象展平为包裹(没懂啥意思,是将图像数据输出吗?输出到哪里?有待进一步探究)
  //@Params dest--要写入对象的Parcel
  //@Params flags--有关如何编写对象的其他标志。可以是0或Parcelable.PARCELABLE_WRITE_RETURN_VALUE
  public void writeToParcel (Parcel dest, int flags)
上一篇 下一篇

猜你喜欢

热点阅读