跳到主要内容

订阅与取消

对于仅自己发布,不跟其他人 连麦 的情况,并不需要执行订阅逻辑。

提示

连麦 是指在当前直播间内,主播邀请观众上麦,观众切换为主播后,主播们之间互相发布订阅的情况。

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

设置订阅资源事件回调

方法

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 资源成功');
}
};

订阅资源

直播房间内有多名主播时,主播之间也需要订阅才能相互看见、听见。需调用 RCRTCEngine 中的 subscribe 来订阅主播资源。

方法

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 内部会自动进行取消处理。