远端用户流
以下示例中的
remoteStream
实例为加入房间时,房间内其他人已发布的资源,或房间事件监听onStreamPublish
收到的房间内其他人新发布的资源。
订阅资源
请确保页面已经引入 rc-liveplayer 组件,订阅完资源之后,SDK 内部会把拉流地址赋给微信的拉流组件 live-player,页面中就会展示订阅资源的画面。
typescript
/**
* 订阅资源
* @param subParams 订阅参数列表
* * ISubParams.stream 从房间数据或房间发布资源事件监听中拿到的 RCRemoteStream 对象
* * ISubParams.subTiny 是否订阅小流,可不传,默认为订阅小流,boolean 类型,true 代表订阅小流
* @returns 订阅的状态码
*/
const { code } = await room.subscribe (subParams: ISubParams[] | RCRemoteStream[])
取消订阅
typescript
/**
* 取消订阅
* @param streams 一组远端 stream 对象
* @returns 取消订阅的状态码
*/
const { code } = await room.unsubscribe (streams: RCRemoteStream[])
查询远端流是否被订阅
typescript
/**
* stream 是否被订阅
* @returns boolean 为 true 时代表为订阅,false 反之
*/
remoteStream.isSubscribed()
查询远端流是否被发布者禁用
-
获取音频资源是否被发布者禁用 isOwnerMuteAudio
typescript/**
* 获取音频资源是否被发布者禁用
* @returns boolean 为 true 时代表被禁用,false 反之
*/
remoteStream.isOwnerMuteAudio() -
获取视频资源是否被发布者禁用 isOwnerDisableVideo
typescript/**
* 获取视频资源是否被发布者禁用
* @returns boolean 为 true 时代表被禁用,false 反之
*/
remoteStream.isOwnerDisableVideo()
查询远端流是否包含音频/视频
-
查询 stream 中是否有音频资源 hasAudio
typescript/**
* stream 中是否有音频资源
* @returns boolean 为 true 时代表包含音频,false 反之
*/
remoteStream.hasAudio() -
查询 stream 中是否有音频资源 hasVideo
typescript/**
* stream 中是否有视频资源
* @returns boolean 为 true 时代表包含视频,false 反之
*/
remoteStream.hasVideo()
获取远端资源信息
-
获取远端流标识名称(Tag)。Tag 可用于区分流的类型,如 CDN 流、屏幕共享流等。创建自定义流时需要指定自定义的 tag。
提示小程序端暂不支持发布自定义流、发布屏幕共享流,但支持观看其他平台发布的自定义流、屏幕共享流。
typescript/**
* 获取 stream 的资源名称
* @returns 返回资源名称
*/
remoteStream.getTag() -
获取远端资源的 ID getMsid
流 ID 的生成规则是 "userID' + '_' + 'tag'。
提示流 ID 并不能作为区分流的唯一标识。因为同一个用户发布的默认音频和视频流的 ID 是相同的。如果需要获取一个流唯一标识,可以使用 ID + mediaType 拼接。
typescript/**
* 获取 stream 的 Id,由“资源发布者的用户名_资源名”组成
* @returns 返回 stream Id
*/
remoteStream.getMsid() -
获取远端资源的媒体类型 getMediaType
typescript/**
* 获取 stream 里面的资源类型
* @returns 返回媒体类型 RCMediaType
* * RCMediaType.AUDIO_ONLY 为 0,代表仅是音频
* * RCMediaType.VIDEO_ONLY 为 1,代表仅是视频
* * RCMediaType.AUDIO_VIDEO 为 2,代表是音视频
*/
remoteStream.getMediaType() -
获取远端资源的发布者 Id getUserId
typescript/**
* 获取 stream 的发布者
* @returns 资源发布者用户 Id
*/
remoteStream.getUserId()