Builder
class Builder
kotlin.Any | |
↳ | android.hardware.camera2.CaptureRequest.Builder |
A builder for capture requests.
To obtain a builder instance, use the android.hardware.camera2.CameraDevice#createCaptureRequest or CameraDevice.CameraDeviceSetup#createCaptureRequest
method, which initializes the request fields to one of the templates defined in CameraDevice
.
Summary
Public methods | |
---|---|
Unit |
Add a surface to the list of targets for this request |
CaptureRequest |
build() Build a request using the current target Surfaces and settings. |
T? |
get(key: CaptureRequest.Key<T>!) Get a capture request field value. |
T? |
getPhysicalCameraKey(key: CaptureRequest.Key<T>!, physicalCameraId: String) Get a capture request field value for a specific physical camera Id. |
Unit |
removeTarget(outputTarget: Surface) Remove a surface from the list of targets for this request. |
Unit |
set(key: CaptureRequest.Key<T>, value: T) Set a capture request field to a value. |
CaptureRequest.Builder! |
setPhysicalCameraKey(key: CaptureRequest.Key<T>, value: T, physicalCameraId: String) Set a capture request field to a value. |
Unit |
Set a tag for this request. |
Public methods
addTarget
fun addTarget(outputTarget: Surface): Unit
Add a surface to the list of targets for this request
The Surface added must be one of the surfaces included in the most recent call to android.hardware.camera2.CameraDevice#createCaptureSession, when the request is given to the camera device.
Adding a target more than once has no effect.
Parameters | |
---|---|
outputTarget |
Surface: Surface to use as an output target for this request This value cannot be null . |
build
fun build(): CaptureRequest
Build a request using the current target Surfaces and settings.
Note that, although it is possible to create a CaptureRequest
with no target Surface
s, passing such a request into CameraCaptureSession#capture
, CameraCaptureSession#captureBurst
, CameraCaptureSession#setRepeatingBurst
, or CameraCaptureSession#setRepeatingRequest
will cause that method to throw an IllegalArgumentException
.
Return | |
---|---|
CaptureRequest |
A new capture request instance, ready for submission to the camera device. This value cannot be null . |
get
fun <T : Any!> get(key: CaptureRequest.Key<T>!): T?
Get a capture request field value. The field definitions can be found in CaptureRequest
.
Parameters | |
---|---|
key |
CaptureRequest.Key<T>!: The metadata field to read. |
Return | |
---|---|
T? |
The value of that key, or null if the field is not set. |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if the key was not valid |
getPhysicalCameraKey
fun <T : Any!> getPhysicalCameraKey(
key: CaptureRequest.Key<T>!,
physicalCameraId: String
): T?
Get a capture request field value for a specific physical camera Id. The field definitions can be found in CaptureRequest
.
This method can be called for logical camera devices, which are devices that have REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA capability and calls to CameraCharacteristics#getPhysicalCameraIds
return a non-empty list of physical devices that are backing the logical camera. The camera Id included in the 'physicalCameraId' argument selects an individual physical device and returns its specific capture request field.
Parameters | |
---|---|
key |
CaptureRequest.Key<T>!: The metadata field to read. |
physicalCameraId |
String: A valid physical camera Id. The valid camera Ids can be obtained via calls to CameraCharacteristics#getPhysicalCameraIds . This value cannot be null . |
Return | |
---|---|
T? |
The value of that key, or null if the field is not set. |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if the key or physical camera id were not valid |
removeTarget
fun removeTarget(outputTarget: Surface): Unit
Remove a surface from the list of targets for this request.
Removing a target that is not currently added has no effect.
Parameters | |
---|---|
outputTarget |
Surface: Surface to use as an output target for this request This value cannot be null . |
set
fun <T : Any!> set(
key: CaptureRequest.Key<T>,
value: T
): Unit
Set a capture request field to a value. The field definitions can be found in CaptureRequest
.
Setting a field to null
will remove that field from the capture request. Unless the field is optional, removing it will likely produce an error from the camera device when the request is submitted.
Parameters | |
---|---|
key |
CaptureRequest.Key<T>: The metadata field to write. This value cannot be null . |
value |
T: The value to set the field to, which must be of a matching type to the key. |
setPhysicalCameraKey
fun <T : Any!> setPhysicalCameraKey(
key: CaptureRequest.Key<T>,
value: T,
physicalCameraId: String
): CaptureRequest.Builder!
Set a capture request field to a value. The field definitions can be found in CaptureRequest
.
Setting a field to null
will remove that field from the capture request. Unless the field is optional, removing it will likely produce an error from the camera device when the request is submitted.
This method can be called for logical camera devices, which are devices that have REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA capability and calls to CameraCharacteristics#getPhysicalCameraIds
return a non-empty set of physical devices that are backing the logical camera. The camera Id included in the 'physicalCameraId' argument selects an individual physical device that will receive the customized capture request field.
Parameters | |
---|---|
key |
CaptureRequest.Key<T>: The metadata field to write. This value cannot be null . |
value |
T: The value to set the field to, which must be of a matching type to the key. |
physicalCameraId |
String: A valid physical camera Id. The valid camera Ids can be obtained via calls to CameraCharacteristics#getPhysicalCameraIds . This value cannot be null . |
Return | |
---|---|
CaptureRequest.Builder! |
The builder object. |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if the physical camera id is not valid |
setTag
fun setTag(tag: Any?): Unit
Set a tag for this request.
This tag is not used for anything by the camera device, but can be used by an application to easily identify a CaptureRequest when it is returned by CaptureCallback.onCaptureCompleted
.
If the application overrides the tag object's Object#toString
function, the returned string must not contain personal identifiable information.
Parameters | |
---|---|
tag |
Any?: an arbitrary Object to store with this request This value may be null . |