摄像头
设置摄像头事件回调监听
设置开启/关闭摄像头事件回调
方法
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();
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| enable | bool | 是 | true 开启摄像头,false 关闭摄像头 |
| camera | RCRTCCamera | 否 | 指定开启的摄像头类型,默认前置摄像头 |
示例代码
开启摄像头
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();
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| config | RCRTCVideoConfig | 是 | 视频配置参数 |
示例代码
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();
参数说明
无参数
返回值
| 类型 | 说明 |
|---|---|
| bool | true 支持区域对焦,false 不支持 |
示例代码
Dart
bool supported = await engine.isCameraFocusSupported();
if (supported) {
engine.setCameraFocusPositionInPreview(100, 100);
}
提示
对于支持的设备,可调用 setCameraFocusPositionInPreview 进行手动对焦,设置对焦的坐标原点为视频区域的左上角。
设置对焦位置
方法
Dart
RCRTCEngine.setCameraFocusPositionInPreview();
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| x | double | 是 | 对焦位置的 X 坐标 |
| y | double | 是 | 对焦位置的 Y 坐标 |
示例代码
Dart
engine.setCameraFocusPositionInPreview(100, 100);
区域测光
调用 RCRTCEngine 下的 isCameraExposurePositionSupported 来判断摄像头是否支持区域测光。
方法
Dart
RCRTCEngine.isCameraExposurePositionSupported();
参数说明
无参数
返回值
| 类型 | 说明 |
|---|---|
| bool | true 支持区域测光,false 不支持 |
示例代码
Dart
bool supported = await engine.isCameraExposurePositionSupported();
if (supported) {
engine.setCameraExposurePositionInPreview(100, 100);
}
提示
对于支持的设备,可调用 setCameraExposurePositionInPreview 进行区域测光设置,设置测光的坐标原点为视频区域的左上角。
设置测光位置
方法
Dart
RCRTCEngine.setCameraExposurePositionInPreview();
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| x | double | 是 | 测光位置的 X 坐标 |
| y | double | 是 | 测光位置的 Y 坐标 |