视频管理
设置视频视图
视频组件
RN CallLib SDK 会暴露呈现视频的组件<RCReactNativeCallVideoView />
, 该组件是视频的容器。
方法
JavaScript
import * as CallLib from '@rongcloud/react-native-calllib';
const RCReactNativeCallVideoView = CallLib.RCReactNativeCallVideoView;
示例代码
- 引入 RCReactNativeCallVideoView
JavaScript
import * as CallLib from '@rongcloud/react-native-calllib';
const RCReactNativeCallVideoView = CallLib.RCReactNativeCallVideoView;
console.log('视频组件导入成功');
- 在 React 组件里定义一个数组,用来存放视图容器的引用
JavaScript
this.viewInfo = [];
console.log('视图容器数组初始化完成');
- 在 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);
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | String | 是 | 用户id |
ref | String | 是 | videoView的容器的引用 |
type | Number | 是 | 视频显示模式 0 铺满 1 自适应 |
isZOrderOnTop | Boolean | 否 | 是否置顶 (仅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);
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
isOpen | Boolean | 是 | 是否开启摄像头 |
RCCallIWCamera | Number | 是 | 0 未指定 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);
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
mediaType | Number | 是 | 通话媒体类型 0表示音频通话 1表示视频通话 |
示例代码
JavaScript
// 降级为音频通话
CallLib.changeMediaType(0);
console.log('通话已降级为音频模式');
在通话建立之后降级通话。