视频管理
设置视频视图
视频组件
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打开 默认摄像头 的场景,视频默认打开前置摄像头。