跳到主要内容

远端用户资源

用户进入音视频房间后,如果想让其他人看见自己的画面、听见自己的声音,需要发布(Publish)本地资源。如果想要看到别人的画面、听见别人的声音,需要订阅(Subscribe)其他人已发布的资源。

设置订阅资源事件回调监听

设置订阅资源事件回调

方法

Dart
RCRTCEngine.onSubscribed

返回值

参数描述
userId远端用户 ID
type订阅资源的类型
code接口结果码
errMsg失败原因

示例代码

Dart
engine.onSubscribed = (String userId, RCRTCMediaType type, int code, String? errMsg) {
if (code != 0) {
// 订阅失败
print('订阅用户 $userId$type 资源失败: $errMsg');
} else {
// 订阅成功
print('订阅用户 $userId$type 资源成功');
}
};

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

方法

Dart
RCRTCEngine.onUnsubscribed

返回值

参数描述
userId远端用户 ID
type取消订阅资源的类型
code接口结果码
errMsg失败原因

示例代码

Dart
engine.onUnsubscribed = (String userId, RCRTCMediaType type, int code, String? errMsg) {
if (code != 0) {
// 取消订阅失败
print('取消订阅用户 $userId$type 资源失败: $errMsg');
} else {
// 取消订阅成功
print('取消订阅用户 $userId$type 资源成功');
}
};

订阅

用户的订阅需要在收到远端用户刚刚发布资源的通知,即 onRemotePublished 时订阅。可调用 RCRTCEngine 中的 subscribe 来订阅某个远端用户的音视频资源,如果远端用户发布的视频资源开启了大小流功能,可以通过 subscribetiny 参数,来选择订阅大流或小流(默认)。

方法

Dart
RCRTCEngine.subscribe();

参数说明

参数类型必填说明
userIdString远端用户 ID
typeRCRTCMediaType资源类型
tinybool是否订阅小流,默认 false(订阅大流)

示例代码

订阅音视频资源

Dart
// 订阅远端用户的音视频资源
engine.subscribe(userId, RCRTCMediaType.audio_video);

订阅纯音频资源

Dart
// 订阅远端用户的纯音频资源
engine.subscribe(userId, RCRTCMediaType.audio);

订阅纯视频资源

Dart
// 订阅远端用户的纯视频资源
engine.subscribe(userId, RCRTCMediaType.video);

订阅小流视频资源

Dart
// 订阅远端用户的小流视频资源
engine.subscribe(userId, RCRTCMediaType.video, tiny: true);

取消订阅

当需要取消订阅时,可调用 RCRTCEngine 中的 unsubscribe 来取消订阅某个远端用户的音视频资源。

方法

Dart
RCRTCEngine.unsubscribe();

参数说明

参数类型必填说明
userIdString远端用户 ID
typeRCRTCMediaType资源类型

示例代码

取消订阅音视频资源

Dart
// 取消订阅远端用户的音视频资源
engine.unsubscribe(userId, RCRTCMediaType.audio_video);

取消订阅纯音频资源

Dart
// 取消订阅远端用户的纯音频资源
engine.unsubscribe(userId, RCRTCMediaType.audio);

取消订阅纯视频资源

Dart
// 取消订阅远端用户的纯视频资源
engine.unsubscribe(userId, RCRTCMediaType.video);
提示

取消订阅接口通常跟订阅接口配对使用,但如果是用户想要退出房间,则不需要调用取消订阅方法,在调用退出房间接口时,SDK 内部会自动进行取消处理。