Skip to content

切换房间

说明

使用该接口可以让用户快速从一个房间切换到另一个房间。

  • 如果用户的身份是“观众”,该接口的调用效果等同于 exitRoom(当前房间) + enterRoom(新的房间)
  • 如果用户的身份是“主播”,该接口在切换房间的同时还会保持自己的音视频发布状态,因此在房间切换过程中,摄像头的预览和声音的采集都不会中断。

该接口适用于在线教育场景中,监课老师在多个房间中进行快速切换的场景。在该场景下使用 switchRoom 可以获得比 exitRoom + enterRoom 更好的流畅性和更少的代码量。

接口调用结果会通过 addListener 中的 onSwitchRoom 回调。

方法名

switchRoom

用法

  • 用法如下:
js
module.switchRoom({
  params:{
  },
  //成功执行的函数
  success: (res) => {
    let data = res.data;
    console.log(data)
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  complete: (res) => {
    // console.log(res)
  }
})
js
module.switchRoom({
  params:{
  },
  //成功执行的函数
  success: (res) => {
    const data = res.data;
    console.log(data)
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  // complete: (res) => {
  //   console.log(res)
  // }
} as LevenOptions)
  • 参数说明
    参数名参数类型是否必填默认值参数描述
    paramsObject参数配置
    params.privateMapKeyString用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。
    仅建议有高级别安全需求的客户使用,更多详情请参见 开启高级权限控制
    params.roomIdInteger数字房间号码 [选填],在同一个房间内的用户可以看到彼此并能够进行音视频通话。
    取值范围:1 - 4294967294。
    roomId 和 strRoomId 必须并且只能填一个。若两者都填,则优先选择 roomId。
    params.strRoomIdString字符串房间号码 [选填],在同一个房间内的用户可以看到彼此并能够进行音视频通话。
    roomId 和 strRoomId 必须并且只能填一个。若两者都填,则优先选择 roomId。
    params.isPluginSigBooleanfalse是否使用插件内部签名,如果为true的话userSig可以不用传,否则必传
    params.userSigString用户签名 [选填],当前 userId 对应的验证签名,相当于登录密码。
    如果您在切换房间时不指定新计算出的 userSig,SDK 会继续使用您在进入房间时(enterRoom)时所指定的 userSig。
    这就需要您必须保证旧的 userSig 在切换房间的那一刻仍在签名允许的效期内,否则会导致房间切换失败。
    具体计算方法请参见 如何计算UserSig
    params.sdkSecretKeyString签名秘钥,isPluginSig为true是必传
    successFunction执行成功的函数
    failFunction执行失败的函数
    completeFunction执行完成的函数,不管成功还是失败都会执行

回调

  • 示例
json
{
"data": { },
"message": "",
"code": 0
}
  • 回调说明:
    参数名参数类型参数描述
    messageString消息提示
    dataObject数据对象
    codeInteger返回类型,0.成功,其他:失败