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