CameraCapturerConfiguration

The camera capturer preference.

struct CameraCapturerConfiguration {
#if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS)
  Optional<CAMERA_DIRECTION> cameraDirection;

  Optional<CAMERA_FOCAL_LENGTH_TYPE> cameraFocalLengthType;
#else
  Optional<const char *> deviceId;
#endif

#if defined(__ANDROID__)
  Optional<const char *> cameraId;
#endif
  Optional<bool> followEncodeDimensionRatio;
  VideoFormat format;
  CameraCapturerConfiguration() : format(VideoFormat(0, 0, 0)) {}
};

Attributes

cameraDirection
(Optional) The camera direction. See CAMERA_DIRECTION.
Attention: This parameter is for Android and iOS only.
cameraId
(Optional) The camera ID. The default value is the camera ID of the front camera. You can get the camera ID through the Android native system API, see and for details.
Attention:
  • This parameter is for Android only.
  • This parameter and cameraDirection are mutually exclusive in specifying the camera; you can choose one based on your needs. The differences are as follows:
    • Specifying the camera via cameraDirection is more straightforward. You only need to indicate the camera direction (front or rear), without specifying a specific camera ID; the SDK will retrieve and confirm the actual camera ID through Android native system APIs.
    • Specifying via cameraId allows for more precise identification of a particular camera. For devices with multiple cameras, where cameraDirection cannot recognize or access all available cameras, it is recommended to use cameraId to specify the desired camera ID directly.
cameraFocalLengthType
(Optional) The camera focal length type. See CAMERA_FOCAL_LENGTH_TYPE.
Attention:
  • This parameter is for Android and iOS only.
  • To set the focal length type of the camera, it is only supported to specify the camera through cameraDirection, and not supported to specify it through cameraId.
  • For iOS devices equipped with multi-lens rear cameras, such as those featuring dual-camera (wide-angle and ultra-wide-angle) or triple-camera (wide-angle, ultra-wide-angle, and telephoto), you can use one of the following methods to capture video with an ultra-wide-angle perspective:
    • Method one: Set this parameter to CAMERA_FOCAL_LENGTH_ULTRA_WIDE (2) (ultra-wide lens).
    • Method two: Set this parameter to CAMERA_FOCAL_LENGTH_DEFAULT (0) (standard lens), then call setCameraZoomFactor to set the camera's zoom factor to a value less than 1.0, with the minimum setting being 0.5.
    The difference is that the size of the ultra-wide angle in method one is not adjustable, whereas method two supports adjusting the camera's zoom factor freely.
format
(Optional) The format of the video frame. See VideoFormat.
deviceId
The camera ID. The maximum length is MAX_DEVICE_ID_LENGTH_TYPE.
Attention: This parameter is for Windows and macOS only.
followEncodeDimensionRatio
(Optional) Whether to follow the video aspect ratio set in setVideoEncoderConfiguration:
  • true: (Default) Follow the set video aspect ratio. The SDK crops the captured video according to the set video aspect ratio and synchronously changes the local preview screen and the video frame in onCaptureVideoFrame and onPreEncodeVideoFrame.
  • false: Do not follow the system default audio playback device. The SDK does not change the aspect ratio of the captured video frame.