跳到主要内容

摄像头

设置摄像头事件回调监听

设置开启/关闭摄像头事件回调

方法

Dart
RCRTCEngine.onEnableCamera

返回值

参数描述
enable是否开启摄像头
code接口结果码
errMsg失败原因

示例代码

Dart
engine.onEnableCamera = (bool enable, int code, String? errMsg) {
if (code != 0) {
// 操作失败
print('摄像头操作失败: $errMsg');
} else {
// 操作成功
print('摄像头操作成功: ${enable ? "开启" : "关闭"}');
}
};

设置切换摄像头事件回调

方法

Dart
RCRTCEngine.onSwitchCamera

返回值

参数描述
camera切换后的摄像头类型
code接口结果码
errMsg失败原因

示例代码

Dart
engine.onSwitchCamera = (RCRTCCamera camera, int code, String? errMsg) {
if (code != 0) {
// 切换失败
print('切换摄像头失败: $errMsg');
} else {
// 切换成功
print('切换摄像头成功: ${camera == RCRTCCamera.front ? "前置" : "后置"}');
}
};

打开/关闭摄像头

调用 RCRTCEngine 下的 enableCamera 打开/关闭摄像头。默认开启前置摄像头,可以通过传入第二个参数指定开启的摄像头。

方法

Dart
RCRTCEngine.enableCamera();

参数说明

参数类型必填说明
enablebooltrue 开启摄像头,false 关闭摄像头
cameraRCRTCCamera指定开启的摄像头类型,默认前置摄像头

示例代码

开启摄像头

Dart
engine.enableCamera(true);

开启指定摄像头

Dart
engine.enableCamera(true, RCRTCCamera.back);

关闭摄像头

Dart
engine.enableCamera(false);
提示

对于 Android 嵌入式设备或使用外接摄像头的情况,建议设置 onEnableCamera 回调方法以确保设备开启成功。

切换摄像头

调用 RCRTCEngine 下的 switchCamera 切换前后摄像头。

方法

Dart
RCRTCEngine.switchCamera();

参数说明

无参数

示例代码

Dart
engine.switchCamera();

设置视频参数

调用 RCRTCEngine 下的 setVideoConfig 设置视频参数。视频参数对象通过 RCRTCVideoConfig.create() 方法来创建。

方法

Dart
RCRTCEngine.setVideoConfig();

参数说明

参数类型必填说明
configRCRTCVideoConfig视频配置参数

示例代码

Dart
RCRTCVideoConfig config = RCRTCVideoConfig.create(
minBitrate: 500,
maxBitrate: 2200,
fps: RCRTCVideoFps.fps_24,
resolution: RCRTCVideoResolution.resolution_720_1280,
mirror: false,
);
engine.setVideoConfig(config);

手动对焦

调用 RCRTCEngine 下的 isCameraFocusSupported 来判断摄像头是否支持区域对焦。

方法

Dart
RCRTCEngine.isCameraFocusSupported();

参数说明

无参数

返回值

类型说明
booltrue 支持区域对焦,false 不支持

示例代码

Dart
bool supported = await engine.isCameraFocusSupported();
if (supported) {
engine.setCameraFocusPositionInPreview(100, 100);
}
提示

对于支持的设备,可调用 setCameraFocusPositionInPreview 进行手动对焦,设置对焦的坐标原点为视频区域的左上角。

设置对焦位置

方法

Dart
RCRTCEngine.setCameraFocusPositionInPreview();

参数说明

参数类型必填说明
xdouble对焦位置的 X 坐标
ydouble对焦位置的 Y 坐标

示例代码

Dart
engine.setCameraFocusPositionInPreview(100, 100);

区域测光

调用 RCRTCEngine 下的 isCameraExposurePositionSupported 来判断摄像头是否支持区域测光。

方法

Dart
RCRTCEngine.isCameraExposurePositionSupported();

参数说明

无参数

返回值

类型说明
booltrue 支持区域测光,false 不支持

示例代码

Dart
bool supported = await engine.isCameraExposurePositionSupported();
if (supported) {
engine.setCameraExposurePositionInPreview(100, 100);
}
提示

对于支持的设备,可调用 setCameraExposurePositionInPreview 进行区域测光设置,设置测光的坐标原点为视频区域的左上角。

设置测光位置

方法

Dart
RCRTCEngine.setCameraExposurePositionInPreview();

参数说明

参数类型必填说明
xdouble测光位置的 X 坐标
ydouble测光位置的 Y 坐标

示例代码

Dart
engine.setCameraExposurePositionInPreview(100, 100);

采集方向

调用 RCRTCEngine 下的 setCameraCaptureOrientation 来设置摄像头采集角度。

方法

Dart
RCRTCEngine.setCameraCaptureOrientation();

参数说明

参数类型必填说明
orientationRCRTCCameraCaptureOrientation摄像头采集方向

示例代码

Dart
engine.setCameraCaptureOrientation(RCRTCCameraCaptureOrientation.landscape_right);