跳到主要内容

视频管理

设置视频视图

视频组件

RN CallLib SDK 会暴露呈现视频的组件<RCReactNativeCallVideoView />, 该组件是视频的容器。

方法

JavaScript
import * as CallLib from '@rongcloud/react-native-calllib';
const RCReactNativeCallVideoView = CallLib.RCReactNativeCallVideoView;

示例代码

  1. 引入 RCReactNativeCallVideoView
JavaScript
import * as CallLib from '@rongcloud/react-native-calllib';
const RCReactNativeCallVideoView = CallLib.RCReactNativeCallVideoView;
console.log('视频组件导入成功');
  1. 在 React 组件里定义一个数组,用来存放视图容器的引用
JavaScript
this.viewInfo = [];
console.log('视图容器数组初始化完成');
  1. 在 React 的 render 函数里的使用
JavaScript
<RCReactNativeCallVideoView
style={{ width: '100%', height: '100%' }}
ref={(ref) => {
const node = findNodeHandle(ref);
if (node) {
this.viewInfo.push({
node: node,
userId: user.userId
});
console.log('视频视图容器引用已保存');
}
}}
/>

设置视频

通过 CallLib.setVideoView 方法设置视频。因要等原生视图完全渲染完成才能取得容器,所以 call.setVideoView 需要延时调用。

方法

JavaScript
CallLib.setVideoView(userId, ref, type, isZOrderOnTop);

参数说明

参数类型必填说明
userIdString用户id
refStringvideoView的容器的引用
typeNumber视频显示模式 0 铺满 1 自适应
isZOrderOnTopBoolean是否置顶 (仅Android 需要设置)

示例代码

JavaScript
setTimeout(() => {
CallLib.setVideoView(userId, ref, type, isZOrderOnTop);
console.log('视频视图设置完成');
}, 200);

切换前后置摄像头

在通话建立之后切换前后置摄像头,该方法适用于通过SDK打开 默认摄像头 的场景,视频默认打开前置摄像头。

方法

JavaScript
CallLib.switchCamera();

示例代码

JavaScript
CallLib.switchCamera();
console.log('摄像头切换完成');

开关摄像头

方法

JavaScript
CallLib.enableCamera(isOpen, RCCallIWCamera);

参数说明

参数类型必填说明
isOpenBoolean是否开启摄像头
RCCallIWCameraNumber0 未指定 1 前置相机 2 后置相机

示例代码

JavaScript
// 开启前置摄像头
CallLib.enableCamera(true, 1);
console.log('前置摄像头已开启');

// 开启后置摄像头
CallLib.enableCamera(true, 2);
console.log('后置摄像头已开启');

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

在通话建立之后打开/关闭摄像头

降级通话

降级通话是指从视频通话转为音频通话,目前仅支持视频往音频单向转换。

方法

JavaScript
CallLib.changeMediaType(mediaType);

参数说明

参数类型必填说明
mediaTypeNumber通话媒体类型 0表示音频通话 1表示视频通话

示例代码

JavaScript
// 降级为音频通话
CallLib.changeMediaType(0);
console.log('通话已降级为音频模式');

在通话建立之后降级通话。