跳到主要内容

摄像头

打开/关闭摄像头

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

提示

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

设置回调

方法

JavaScript
rtcEngine.setOnEnableCameraListener(callback);

回调参数

参数类型说明
enableBoolean是否开启摄像头
codeNumber错误码,0 表示成功
messageString错误信息

示例代码

JavaScript
rtcEngine.setOnEnableCameraListener((enable, code, message) => {
if (code === 0) {
// 操作成功
console.log('摄像头操作成功:', enable);
} else {
// 操作失败
console.log('摄像头操作失败:', message);
}
});

开启摄像头

方法

JavaScript
rtcEngine.enableCamera(enabled, camera);

参数说明

参数类型必填说明
enabledBoolean是否开启摄像头
cameraRCRTCCamera摄像头类型,默认前置摄像头

示例代码

JavaScript
// 开启摄像头
rtcEngine.enableCamera(true);
console.log('摄像头已开启');

// 开启指定摄像头
rtcEngine.enableCamera(true, RCRTCCamera.Back);
console.log('后置摄像头已开启');

// 关闭摄像头
rtcEngine.enableCamera(false);
console.log('摄像头已关闭');

切换摄像头

调用 RCRTCEngine 下的 switchCamera 切换前后摄像头。通过设置 setOnSwitchCameraListener 回调方法来监听是否成功切换摄像头。

设置回调

方法

JavaScript
rtcEngine.setOnSwitchCameraListener(callback);

回调参数

参数类型说明
cameraRCRTCCamera切换后的摄像头类型
codeNumber错误码,0 表示成功
messageString错误信息

示例代码

JavaScript
rtcEngine.setOnSwitchCameraListener((camera, code, message) => {
if (code === 0) {
// 切换成功
console.log('摄像头切换成功:', camera);
} else {
// 切换失败
console.log('摄像头切换失败:', message);
}
});

切换摄像头

方法

JavaScript
rtcEngine.switchCamera();

示例代码

JavaScript
rtcEngine.switchCamera();
console.log('摄像头切换请求已发送');

设置视频参数

调用 RCRTCEngine 下的 setVideoConfig 设置视频参数。

方法

JavaScript
rtcEngine.setVideoConfig(config);

参数说明

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

示例代码

JavaScript
let config = {
minBitrate: 500,
maxBitrate: 2200,
fps: RCRTCVideoFps.Fps25,
resolution: RCRTCVideoResolution.Resolution_720x1280,
mirror: false,
};
rtcEngine.setVideoConfig(config);
console.log('视频参数设置完成');

手动对焦

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

提示

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

方法

JavaScript
rtcEngine.isCameraFocusSupported();
rtcEngine.setCameraFocusPositionInPreview(x, y);

参数说明

参数类型必填说明
xNumber对焦点的 X 坐标
yNumber对焦点的 Y 坐标

示例代码

JavaScript
let supported = rtcEngine.isCameraFocusSupported();
if (supported) {
rtcEngine.setCameraFocusPositionInPreview(100, 100);
console.log('手动对焦设置完成');
} else {
console.log('设备不支持手动对焦');
}

区域测光

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

提示

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

方法

JavaScript
rtcEngine.isCameraExposurePositionSupported();
rtcEngine.setCameraExposurePositionInPreview(x, y);

参数说明

参数类型必填说明
xNumber测光点的 X 坐标
yNumber测光点的 Y 坐标

示例代码

JavaScript
let supported = rtcEngine.isCameraExposurePositionSupported();
if (supported) {
rtcEngine.setCameraExposurePositionInPreview(100, 100);
console.log('区域测光设置完成');
} else {
console.log('设备不支持区域测光');
}

采集方向

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

方法

JavaScript
rtcEngine.setCameraCaptureOrientation(orientation);

参数说明

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

示例代码

JavaScript
rtcEngine.setCameraCaptureOrientation(RCRTCCameraCaptureOrientation.LandscapeRight);
console.log('摄像头采集方向设置完成');