Skip to content

进入房间

说明

TRTC 的所有用户都需要进入房间才能“发布”或“订阅”音视频流,“发布”是指将自己的音频和视频推送到云端,“订阅”是指从云端拉取房间里其他用户的音视频流。

调用该接口时,您需要指定您的应用场景 scene 以获取最佳的音视频传输体验,这些场景可以分成两大类:

实时通话: 包括 TRTC_APP_SCENE_VIDEOCALLTRTC_APP_SCENE_AUDIOCALL 两个可选项,分别是视频通话和语音通话,该模式适合 1对1 的音视频通话,或者参会人数在 300 人以内的在线会议。

在线直播: 包括 TRTC_APP_SCENE_LIVETRTC_APP_SCENE_VOICE_CHATROOM 两个可选项,分别是视频直播和语音直播,该模式适合十万人以内的在线直播场景,但需要您在接下来介绍的 params 参数中指定 角色(role) 这个字段,也就是将房间中的用户区分为 主播 (TRTCRoleAnchor) 和 观众 (TRTCRoleAudience) 两种不同的角色。

调用该接口后,您会收到来自 addListener 中的 onEnterRoom 回调:

如果进房成功,参数 result 会是一个正数(result > 0),表示从函数调用到进入房间所花费的时间,单位是毫秒(ms)。

如果进房失败,参数 result 会是一个负数(result < 0),表示进房失败的错误码

方法名

enterRoom

用法

  • 用法如下:
js
module.enterRoom({
  params:{
  },
  //成功执行的函数
  success: (res) => {
    let data = res.data;
    console.log(data)
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  complete: (res) => {
    // console.log(res)
  }
})
js
module.enterRoom({
  params:{
  },
  //成功执行的函数
  success: (res) => {
    const data = res.data;
    console.log(data)
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  // complete: (res) => {
  //   console.log(res)
  // }
} as LevenOptions)
  • 参数说明
    参数名参数类型是否必填默认值参数描述
    paramsObject进入房间参数
    params.sdkAppIdString应用标识(必填),腾讯云基于 sdkAppId 完成计费统计
    params.userIdString用户标识(必填),当前用户的 userId,相当于用户名,使用 UTF-8 编码。
    params.sceneString应用场景,用于指定您的业务场景,同一个房间内的所有用户需要设定相同的,可参考应用场景说明
    params.isPluginSigBooleanfalse是否使用插件内部签名,如果为true的话userSig可以不用传,否则必传
    params.userSigString用户签名,当前 userId 对应的验证签名,相当于使用云服务的登录密码
    params.sdkSecretKeyString签名秘钥,isPluginSig为true是必传
    params.businessInfoString业务数据字段(选填),部分高级特性才需要用到此字段
    请不要自行设置该字段
    params.privateMapKeyString用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。
    仅建议有高级别安全需求的客户使用,更多详情请参见进房权限保护
    params.roleStringTRTCRoleAnchor直播场景下的角色,仅适用于直播场景(TRTC_APP_SCENE_LIVE 和 TRTC_APP_SCENE_VOICE_CHATROOM),通话场景下指定该参数是无效的。可选值:TRTCRoleAnchorTRTCRoleAudience,可参考角色说明
    params.roomIdInteger数字房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。
    取值范围:1 - 4294967294
    【特别说明】
    1. roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为 0。若两者都填,SDK 将优先选用 roomId
    2. 不要混用 roomId 和 strRoomId,因为它们之间是不互通的,例如数字 123 和字符串 123 在 TRTC 看来是两个完全不同的房间。
    params.strRoomIdString字符串房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。
    限制长度为 64 字节。以下为支持的字符集范围(共 89 个字符)
    大小写英文字母(a-zA-Z)
    数字(0-9)
    空格!#$%&()+-:;<=.>?@[]^_{}|~,
    【特别说明】
    1. roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为 0。若两者都填,SDK 将优先选用 roomId
    2. 不要混用 roomId 和 strRoomId,因为它们之间是不互通的,例如数字 123 和字符串 123 在 TRTC 看来是两个完全不同的房间。
    params.streamIdString于指定在腾讯云直播平台上的 streamId(选填),设置之后,您可以在腾讯云直播 CDN 上通过标准拉流方案(FLV 或 HLS)播放该用户的音视频流。
    限制长度为64字节,可以不填写,一种推荐的方案是使用 sdkappid_roomid_userid_main 作为 streamid,这种命名方式容易辨认且不会在您的多个应用中发生冲突。
    【特别说明】要使用腾讯云直播 CDN,您需要先在 控制台 中的功能配置页开启“启动自动旁路直播”开关。
    【参考文档】发布音视频流到直播 CDN
    params.userDefineRecordIdString云端录制开关(选填),用于指定是否要在云端将该用户的音视频流录制下来。
    【参考文档】云端录制
    【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
    方案一:手动录制方案:
    1. 在 控制台>应用管理>云端录制配置 中开启云端录制。
    2. 设置 录制形式手动录制
    3. 设置手动录制后,在一个 TRTC 房间中只有设置了 userDefineRecordId 参数的用户才会在云端录制出视频文件,不指定该参数的用户不会产生录制行为。
    4. 云端会以 “userDefineRecordId_起始时间_结束时间” 的格式命名录制下来的文件。
    方案二:自动录制方案:
    1. 需要在 控制台>应用管理>云端录制配置 中开启云端录制。
    2. 设置 录制形式自动录制
    3. 设置自动录制后,在一个 TRTC 房间中的任何一个有音视频上行的用户,均会在云端录制出视频文件。
    4. 文件会以 userDefineRecordId_起始时间_结束时间 的格式命名,如果不指定 userDefineRecordId,则文件会以 streamId_起始时间_结束时间 命名。
    successFunction执行成功的函数
    failFunction执行失败的函数
    completeFunction执行完成的函数,不管成功还是失败都会执行

应用场景说明

名称描述
TRTC_APP_SCENE_VIDEOCALL视频通话场景,支持720P、1080P高清画质,单个房间最多支持300人同时在线,最高支持50人同时发言。
适用于[1对1视频通话]、[300人视频会议]、[在线问诊]、[教育小班课]、[远程面试]等业务场景。
TRTC_APP_SCENE_LIVE视频互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。
适用于[低延时互动直播]、[大班课]、[主播PK]、[视频相亲]、[在线互动课堂]、[远程培训]、[超大型会议]等业务场景。
注意:此场景下,您必须通过 params 中的 role 字段指定当前用户的角色。
TRTC_APP_SCENE_AUDIOCALL语音通话场景,默认采用 SPEECH 音质,单个房间最多支持300人同时在线,最高支持50人同时发言。
适用于 [1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀] 等业务场景。
TRTC_APP_SCENE_VOICE_CHATROOM语音互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于 300ms;支持十万级别观众同时播放,播放延时低至 1000ms。
适用于 [语音俱乐部]、[在线K歌房]、[音乐直播间]、[FM电台] 等业务场景。
注意:此场景下,您必须通过 params 中的 role 字段指定当前用户的角色。

角色说明

名称描述
TRTCRoleAnchor主播:可以随时发布自己的音视频流,但人数有限制,同一个房间中最多只允许 50 个主播同时发布自己的音视频流。
TRTCRoleAudience观众:只能观看其他用户的音视频流,要发布音视频流,需要先通过 switchRole 切换成主播,同一个房间中最多能容纳10万观众。

回调

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