跳到主要内容

远端用户流

以下示例中的 remoteStream 实例为加入房间时,房间内其他人已发布的资源,或房间事件监听 onStreamPublish 收到的房间内其他人新发布的资源。

订阅资源

请确保页面已经引入 rc-liveplayer 组件,订阅完资源之后,SDK 内部会把拉流地址赋给微信的拉流组件 live-player,页面中就会展示订阅资源的画面。

subscribe

/**
* 订阅资源
* @param subParams 订阅参数列表
* * ISubParams.stream 从房间数据或房间发布资源事件监听中拿到的 RCRemoteStream 对象
* * ISubParams.subTiny 是否订阅小流,可不传,默认为订阅小流,boolean 类型,true 代表订阅小流
* @returns 订阅的状态码
*/
const { code } = await room.subscribe (subParams: ISubParams[] | RCRemoteStream[])

取消订阅

unsubscribe

/**
* 取消订阅
* @param streams 一组远端 stream 对象
* @returns 取消订阅的状态码
*/
const { code } = await room.unsubscribe (streams: RCRemoteStream[])

查询远端流是否被订阅

isSubscribed

/**
* stream 是否被订阅
* @returns boolean 为 true 时代表为订阅,false 反之
*/
remoteStream.isSubscribed()

查询远端流是否被发布者禁用

  • 获取音频资源是否被发布者禁用 isOwnerMuteAudio

    /**
    * 获取音频资源是否被发布者禁用
    * @returns boolean 为 true 时代表被禁用,false 反之
    */
    remoteStream.isOwnerMuteAudio()
  • 获取视频资源是否被发布者禁用 isOwnerDisableVideo

    /**
    * 获取视频资源是否被发布者禁用
    * @returns boolean 为 true 时代表被禁用,false 反之
    */
    remoteStream.isOwnerDisableVideo()

查询远端流是否包含音频/视频

  • 查询 stream 中是否有音频资源 hasAudio

    /**
    * stream 中是否有音频资源
    * @returns boolean 为 true 时代表包含音频,false 反之
    */
    remoteStream.hasAudio()
  • 查询 stream 中是否有音频资源 hasVideo

    /**
    * stream 中是否有视频资源
    * @returns boolean 为 true 时代表包含视频,false 反之
    */
    remoteStream.hasVideo()

获取远端资源信息

  • 获取远端流标识名称(Tag)。Tag 可用于区分流的类型,如 CDN 流、屏幕共享流等。创建自定义流时需要指定自定义的 tag。

    提示

    小程序端暂不支持发布自定义流、发布屏幕共享流,但支持观看其他平台发布的自定义流、屏幕共享流。

    getTag

    /**
    * 获取 stream 的资源名称
    * @returns 返回资源名称
    */
    remoteStream.getTag()
  • 获取远端资源的 ID getMsid

    流 ID 的生成规则是 "userID' + '_' + 'tag'。

    提示

    流 ID 并不能作为区分流的唯一标识。因为同一个用户发布的默认音频和视频流的 ID 是相同的。如果需要获取一个流唯一标识,可以使用 ID + mediaType 拼接。

    /**
    * 获取 stream 的 Id,由“资源发布者的用户名_资源名”组成
    * @returns 返回 stream Id
    */
    remoteStream.getMsid()
  • 获取远端资源的媒体类型 getMediaType

    /**
    * 获取 stream 里面的资源类型
    * @returns 返回媒体类型 RCMediaType
    * * RCMediaType.AUDIO_ONLY 为 0,代表仅是音频
    * * RCMediaType.VIDEO_ONLY 为 1,代表仅是视频
    * * RCMediaType.AUDIO_VIDEO 为 2,代表是音视频
    */
    remoteStream.getMediaType()
  • 获取远端资源的发布者 Id getUserId

    /**
    * 获取 stream 的发布者
    * @returns 资源发布者用户 Id
    */
    remoteStream.getUserId()