跳到主要内容

标准会议流程

在开始之前,请您再次确认您已经完成了开通音视频服务导入 SDK以及初始化

设置本地事件回调监听

设置加入房间事件回调

方法

JavaScript
rtcEngine.setOnRoomJoinedListener(callback);

回调参数

参数类型说明
codeNumber错误码,0 表示成功
messageString错误信息

示例代码

JavaScript
rtcEngine.setOnRoomJoinedListener((code, message) => {
if (code === 0) {
// 加入房间成功
console.log('加入房间成功');
} else {
// 加入房间失败
console.log('加入房间失败:', message);
}
});

设置发布资源事件回调

方法

JavaScript
rtcEngine.setOnPublishedListener(callback);

回调参数

参数类型说明
typeRCRTCMediaType发布资源的类型
codeNumber错误码,0 表示成功
messageString错误信息

示例代码

JavaScript
rtcEngine.setOnPublishedListener((type, code, message) => {
if (code === 0) {
// 发布成功
console.log('发布成功:', type);
} else {
// 发布失败
console.log('发布失败:', message);
}
});

设置取消发布资源事件回调

方法

JavaScript
rtcEngine.setOnUnpublishedListener(callback);

回调参数

参数类型说明
typeRCRTCMediaType取消发布资源的类型
codeNumber错误码,0 表示成功
messageString错误信息

示例代码

JavaScript
rtcEngine.setOnUnpublishedListener((type, code, message) => {
if (code === 0) {
// 取消发布成功
console.log('取消发布成功:', type);
} else {
// 取消发布失败
console.log('取消发布失败:', message);
}
});

设置订阅资源事件回调

方法

JavaScript
rtcEngine.setOnSubscribedListener(callback);

回调参数

参数类型说明
userIdString远端用户 ID
typeRCRTCMediaType订阅资源的类型
codeNumber错误码,0 表示成功
messageString错误信息

示例代码

JavaScript
rtcEngine.setOnSubscribedListener((userId, type, code, message) => {
if (code === 0) {
// 订阅成功
console.log('订阅成功:', userId, type);
} else {
// 订阅失败
console.log('订阅失败:', message);
}
});

设置取消订阅资源事件回调

方法

JavaScript
rtcEngine.setOnUnsubscribedListener(callback);

回调参数

参数类型说明
userIdString远端用户 ID
typeRCRTCMediaType取消订阅资源的类型
codeNumber错误码,0 表示成功
messageString错误信息

示例代码

JavaScript
rtcEngine.setOnUnsubscribedListener((userId, type, code, message) => {
if (code === 0) {
// 取消订阅成功
console.log('取消订阅成功:', userId, type);
} else {
// 取消订阅失败
console.log('取消订阅失败:', message);
}
});

设置远端事件回调监听

设置远端用户加入房间事件回调

方法

JavaScript
rtcEngine.setOnUserJoinedListener(callback);

回调参数

参数类型说明
roomIdString房间 ID
userIdString远端用户 ID

示例代码

JavaScript
rtcEngine.setOnUserJoinedListener((roomId, userId) => {
console.log('远端用户加入房间:', userId, roomId);
});

设置远端用户离开房间事件回调

方法

JavaScript
rtcEngine.setOnUserLeftListener(callback);

回调参数

参数类型说明
roomIdString房间 ID
userIdString远端用户 ID

示例代码

JavaScript
rtcEngine.setOnUserLeftListener((roomId, userId) => {
console.log('远端用户离开房间:', userId, roomId);
});

设置远端用户离线事件回调

方法

JavaScript
rtcEngine.setOnUserOfflineListener(callback);

回调参数

参数类型说明
roomIdString房间 ID
userIdString远端用户 ID

示例代码

JavaScript
rtcEngine.setOnUserOfflineListener((roomId, userId) => {
console.log('远端用户离线:', userId, roomId);
});

设置远端用户发布资源回调

方法

JavaScript
rtcEngine.setOnRemotePublishedListener(callback);

回调参数

参数类型说明
roomIdString房间 ID
userIdString远端用户 ID
typeRCRTCMediaType远端用户发布的资源类型

示例代码

JavaScript
rtcEngine.setOnRemotePublishedListener((roomId, userId, type) => {
console.log('远端用户发布资源:', userId, type);
});

设置远端用户取消发布资源回调

方法

JavaScript
rtcEngine.setOnRemoteUnpublishedListener(callback);

回调参数

参数类型说明
roomIdString房间 ID
userIdString远端用户 ID
typeRCRTCMediaType远端用户发布的资源类型

示例代码

JavaScript
rtcEngine.setOnRemoteUnpublishedListener((roomId, userId, type) => {
console.log('远端用户取消发布资源:', userId, type);
});

加入房间

以会议成员身份(MeetingMember)加入音视频会议

方法

JavaScript
rtcEngine.joinRoom(roomId, setup);

参数说明

参数类型必填说明
roomIdString会议号
setupRCRTCRoomSetup房间配置

示例代码

JavaScript
let setup = {
type: RCRTCMediaType.AudioVideo,
role: RCRTCRole.MeetingMember
};
rtcEngine.joinRoom('会议号', setup);
console.log('加入会议房间');

本地预览

打开前置摄像头采集视频

方法

JavaScript
rtcEngine.enableCamera(enabled, camera);

参数说明

参数类型必填说明
enabledBoolean是否开启摄像头
cameraRCRTCCamera摄像头类型

示例代码

JavaScript
rtcEngine.enableCamera(true, RCRTCCamera.Front);
console.log('前置摄像头已开启');

导入预览窗口组件

警告

RCReactNativeRtcView 内部包装的是原生提供的组件, 所以 RCRTCView 只能在 TSX或JSX 文件中使用。

方法

JavaScript
import { RCReactNativeRtcView } from '@rongcloud/react-native-rtc';

示例代码

JavaScript
// 导入 RCReactNativeRtcView
import { RCReactNativeRtcView } from '@rongcloud/react-native-rtc';
console.log('预览窗口组件导入成功');

添加预览窗口并获取viewTag

方法

JavaScript
<RCReactNativeRtcView
ref={(ref) => {
let viewTag = findNodeHandle(ref);
}}
fitType={RCRTCViewFitType.Center}
mirror={true}>
</RCReactNativeRtcView>

参数说明

参数类型必填说明
fitTypeRCRTCViewFitType视频填充模式
mirrorBoolean视频是否镜像显示

示例代码

JavaScript
// 增加 RCReactNativeRtcView 组件, fitType: 视频填充模式, mirror: 视频是否镜像显示。并在ref中获取viewTag
<RCReactNativeRtcView
ref={(ref) => {
let viewTag = findNodeHandle(ref);
console.log('获取到预览窗口 viewTag:', viewTag);
}}
fitType={RCRTCViewFitType.Center}
mirror={true}>
</RCReactNativeRtcView>

设置预览窗口

方法

JavaScript
rtcEngine.setLocalView(viewTag);

参数说明

参数类型必填说明
viewTagNumber预览窗口的 viewTag

示例代码

JavaScript
// 设置预览窗口,其中viewTag为上一步获取的viewTag
rtcEngine.setLocalView(viewTag).then(code => {
if (code === 0) {
// 设置成功
console.log('本地预览窗口设置成功');
} else {
// 设置失败
console.log('本地预览窗口设置失败');
}
});

发布资源

发布音视频资源

方法

JavaScript
rtcEngine.publish(mediaType);

参数说明

参数类型必填说明
mediaTypeRCRTCMediaType媒体类型

示例代码

JavaScript
rtcEngine.publish(RCRTCMediaType.AudioVideo);
console.log('音视频资源发布请求已发送');

订阅远端用户资源

远端用户发布资源后,订阅远端用户音视频资源

方法

JavaScript
rtcEngine.subscribe(userId, mediaType);

参数说明

参数类型必填说明
userIdString远端用户 ID
mediaTypeRCRTCMediaType媒体类型

示例代码

JavaScript
rtcEngine.subscribe(userId, RCRTCMediaType.AudioVideo);
console.log('订阅远端用户音视频资源');

远端用户发布资源后,设置远端用户预览窗口

方法

JavaScript
rtcEngine.setRemoteView(userId, viewTag);

参数说明

参数类型必填说明
userIdString远端用户 ID
viewTagNumber预览窗口的 viewTag

示例代码

JavaScript
// viewTag参考setLocalView说明
rtcEngine.setRemoteView(userId, viewTag).then(code => {
if (code === 0) {
// 设置成功
console.log('远端用户预览窗口设置成功');
} else {
// 设置失败
console.log('远端用户预览窗口设置失败');
}
});