订阅与取消
直播模式中主播发布的音视频资源,会在服务端另行合并生成一道音频合流和一道视频合流。
观众既可以直接订阅原始音视频资源(简称 分流
)也可订阅 合流
。下面将分别介绍这两种订阅方式的区别和适用场景。
提示
观众被定义为只能订阅不能发布,如需发布必须先转为主播身份,再进行资源的发布。
订阅分流
分流订阅跟会议模式的订阅一样,适合小众玩法灵活的直播业务场景。比如观众被分成多种角色,需要选择性观看或收听部分主播发布的资源;又或者不同观众的展示布局并不相同,甚至可以随时切换布局的情况,SDK 提供视频展示 View 的创建和与流绑定接口,开 发者自行编写展示逻辑。
观众的订阅需要在收到主播刚刚发布资源的通知,即 setOnRemotePublishedListener
回调后订阅。可调用 RCRTCEngine
中的 subscribe
来订阅某个主播的音视频资源,如果主播发布的视频资源开启了大小流功能,可以通过 subscribe
的 tiny
参数,来选择订阅大流或小流(默认)。
-
示例代码:
JavaScriptengine.subscribe(userId, RCRTCMediaType.AudioVideo);
取消订阅分流
当需要取消订阅分流时,可调用 RCRTCEngine
中的 unsubscribe
方法来取消订阅指定的主播资源。取消订阅接口通常跟订阅接口配对使用,但如果是用户想要退出房间,则不需要调用取消订阅方法,在调用退出房间接口时,SDK 内部会自动进行取消处理。
-
示例代码:
JavaScriptengine.unsubscribe(userId, RCRTCMediaType.AudioVideo);