订阅与取消
对于仅自己发布,不跟其他人 连麦
注 的情况,并不需要执行订阅逻辑。
提示
连麦
是指在当前直播间内,主播邀请观众上麦,观众切换为主播后,主播们之间互相发布订阅的情况。
设置订阅资源事件回调监听
设置订阅资源事件回调
方法
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();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | String | 是 | 远端主播 ID |
type | RCRTCMediaType | 是 | 资源类型 |
tiny | bool | 否 | 是否订阅小流,默认 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();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | String | 是 | 远端主播 ID |
type | RCRTCMediaType | 是 | 资源类型 |