UseCase.InteropConfigurable


interface UseCase.InteropConfigurable<B : UseCase.InteropConfigurable<B!>?>


Applies camera-backend-specific options.

Implementations (such as UseCase builders) support applying backend-specific configurations, such as Camera2 capture request options.

Parameters
<B : UseCase.InteropConfigurable<B!>?>

the type of the builder implementing this interface

Summary

Public functions

B
setInterop(configurator: InteropConfigurator<B!>)

Applies interoperability configuration to this builder.

Extension functions

inline B
<B : UseCase.InteropConfigurable<B>> B.camera2Interop(
    crossinline block: UseCaseCamera2Interop.() -> Unit
)

Applies Camera2 options to a UseCase builder.

Public functions

setInterop

Added in 1.7.0-rc01
fun setInterop(configurator: InteropConfigurator<B!>): B

Applies interoperability configuration to this builder.

To configure Camera2 options, use Camera2Interop.forUseCase(configurator) (from the camera-camera2 artifact) to create a configurator, then pass it to this method.

Note: Using Camera2 interop options can override internal CameraX configurations. If an option configured via interop conflicts with options required by CameraX internally, the option from Camera2Interop will override, which may result in unexpected behavior.

Parameters
configurator: InteropConfigurator<B!>

the configurator that sets the interoperability options

Returns
B

this builder

Extension functions

B.camera2Interop

inline fun <B : UseCase.InteropConfigurable<B>> B.camera2Interop(
    crossinline block: UseCaseCamera2Interop.() -> Unit
): B

Applies Camera2 options to a UseCase builder.

Configures Camera2 options on builders implementing UseCase.InteropConfigurable (such as androidx.camera.core.Preview.Builder, androidx.camera.core.ImageAnalysis.Builder, or androidx.camera.video.VideoCapture.Builder). For ImageCapture.Builder, use the dedicated ImageCapture.Builder.camera2Interop extension function.

Options configured via UseCaseCamera2Interop include:

Note: Using Camera2 interop options can override internal CameraX configurations. If an option configured via interop conflicts with options required by CameraX internally, the option from Camera2Interop will override, which may result in unexpected behavior.

import androidx.camera.camera2.interop.camera2Interop
import androidx.camera.core.Preview
import androidx.camera.core.preview

val preview =
    Preview.Builder()
        .camera2Interop {
            physicalCameraId = "5"
            mirrorMode = OutputConfiguration.MIRROR_MODE_H
        }
        .build()
Parameters
crossinline block: UseCaseCamera2Interop.() -> Unit

configuration block setting Camera2 options on UseCaseCamera2Interop

Returns
B

this builder