UseCase.InteropConfigurable


public interface UseCase.InteropConfigurable<B extends 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 extends UseCase.InteropConfigurable<B>>

the type of the builder implementing this interface

Summary

Public methods

default @NonNull B

Applies interoperability configuration to this builder.

Extension functions

default final @NonNull B
<B extends UseCase.InteropConfigurable<@NonNull B>> Camera2InteropEx.camera2Interop(
    @NonNull B receiver,
    @NonNull Function1<@NonNull UseCaseCamera2Interop, Unit> block
)

Applies Camera2 options to a UseCase builder.

Public methods

setInterop

Added in 1.7.0-rc01
default @NonNull B setInterop(@NonNull InteropConfigurator<B> configurator)

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
@NonNull InteropConfigurator<B> configurator

the configurator that sets the interoperability options

Returns
@NonNull B

this builder

Extension functions

Camera2InteropEx.camera2Interop

default final @NonNull B <B extends UseCase.InteropConfigurable<@NonNull B>> Camera2InteropEx.camera2Interop(
    @NonNull B receiver,
    @NonNull Function1<@NonNull UseCaseCamera2Interop, Unit> block
)

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
@NonNull Function1<@NonNull UseCaseCamera2Interop, Unit> block

configuration block setting Camera2 options on UseCaseCamera2Interop

Returns
@NonNull B

this builder