CameraCapturerConfiguration
配置摄像头采集偏好。
C++
struct CameraCapturerConfiguration {
#if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
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;
};
cameraDirection
(可选)摄像头方向,详见 CAMERA_DIRECTION。
信息
该参数仅适用于 Android 和 iOS 平台。
cameraFocalLengthType
(可选)摄像头焦距类型,详见 CAMERA_FOCAL_LENGTH_TYPE。
信息
该参数仅适用于 Android 和 iOS 平台。
- 设置摄像头焦距类型时,仅支持通过
cameraDirection指定摄像头,不支持通过cameraId指定。 - 对于配备多镜头后置摄像头的 iOS 设备(如双摄:广角和超广角,或三摄:广角、超广角和长焦),可通过以下方式实现超广角视角的视频采集:
- 方法一:将该参数设置为
CAMERA_FOCAL_LENGTH_ULTRA_WIDE(2)(超广角镜头)。 - 方法二:将该参数设置为
CAMERA_FOCAL_LENGTH_DEFAULT(0)(标准镜头),然后调用 setCameraZoomFactor 将摄像头变焦因子设置为小于 1.0 的值,最小为 0.5。
- 方法一:将该参数设置为
deviceId
摄像头 ID,最大长度为 MAX_DEVICE_ID_LENGTH_TYPE。
信息
该参数仅适用于 Windows 和 macOS 平台。
cameraId
(可选)摄像头 ID。
信息
该参数仅适用于 Android 平台。
- 该参数与
cameraDirection互斥,二者只能选其一。 - 使用
cameraDirection指定摄像头更为简便,仅需指定摄像头方向(前置或后置),SDK 会通过 Android 原生 API 获取并确认实际摄像头 ID。 - 使用
cameraId可更精确地指定某个摄像头,适用于多摄像头设备中cameraDirection无法识别或访问所有摄像头的场景,建议直接使用cameraId指定目标摄像头。
followEncodeDimensionRatio
(可选)是否遵循 setVideoEncoderConfiguration 中设置的视频宽高比:
- true:(默认)遵循设置的视频宽高比。SDK 会根据设置的视频宽高比裁剪采集的视频,并同步更新本地预览画面以及 onCaptureVideoFrame 和 onPreEncodeVideoFrame 中的视频帧。
- false:不遵循设置的视频宽高比。SDK 不会更改采集视频帧的宽高比。
format
(可选)视频帧的格式,详见 VideoFormat。