tencent cloud

文档反馈

最后更新时间:2022-08-08 15:25:07

    本文档主要介绍如何进入 TRTC 房间中,只有在进入音视频房间后,用户才能订阅房间中其他用户的音视频流,或者向房间中的其他用户发布自己的音视频流。

    在使用 TRTC Web SDK 中,经常会接触到以下对象:

    • Client 对象,代表一个本地客户端。Client 类的方法提供了进入通话房间、发布本地流、订阅远端流等功能。
    • Stream 对象,代表一个音视频流对象,包括本地音视频流对象 LocalStream 和远端音视频流对象 RemoteStream。Stream 类的方法主要提供音视频流对象的行为,包括音频和视频的播放控制。

    步骤1:创建 Client 对象

    通过 TRTC.createClient() 方法创建 Client 对象,主要参数如下:

    参数名称 字段含义 补充说明 数据类型 填写示例 默认值 备注
    mode 应用场景 实时通话模式设置为 rtc,该模式适合 1对1 的音视频通话,或者参会人数在 300 人以内的在线会议。
    在线直播模式设置为 live,该模式适合十万人以内的在线直播场景
    string rtc rtc -
    sdkAppId 应用 ID 您可以在 实时音视频控制台 中找到这个 sdkAppId,如果没有就单击“创建应用”按钮创建一个新的应用。 number 1400000123 必填
    userId 用户 ID 即用户名,只允许包含大小写英文字母(a-z、A-Z)、数字(0-9)及下划线和连词符。
    注意: TRTC 不支持同一个 userId 在两台不同的设备上同时进入房间,否则会相互干扰。
    string “denny” 或者 “123321” 必填
    userSig 进房鉴权票据 计算方法请参见 如何计算及使用 UserSig string eJyrVareCeYrSy1SslI... 必填
    useStringRoomId 字符串房间号开关 是否使用 string 类型的 roomId。 boolean true false -

    更详细的参数说明参见 TRTC.createClient()

    // 实时通话模式下创建客户端对象
    const client = TRTC.createClient({
    mode: 'rtc',
    sdkAppId,
    userId,
    userSig
    });
    // 互动直播模式下创建客户端对象
    const client = TRTC.createClient({
    mode: 'live',
    sdkAppId,
    userId,
    userSig
    });
    

    步骤2:进入音视频通话房间

    调用 Client.join() 进入音视频通话房间。主要参数如下:

    参数名称 字段含义 补充说明 数据类型 填写示例 默认值 备注
    roomId 房间号 默认是 number 类型,如需使用 string 类型的 roomId,请在 createClient() 中设置 useStringRoomId 参数为 true
    - roomId 为 number 类型时,取值要求为 [1, 4294967294] 的整数;
    - roomId 为 string 类型时,限制长度为64字节,且仅支持以下范围的字符集:
    大小写英文字母(a-zA-Z); 数字(0-9); 空格、!、#、$、%、&、(、)、+、-、:、;、<、=、.、>、?、@、[、]、^、_、 {、}、|、~、,
    number / string 3364 或 class-room 必填
    role 角色 用户角色仅在 live 模式才需要设置,目前支持两种角色:anchor 主播,audience 观众 string anchor audience -

    更详细的参数说明参见 Client.join()

    // 使用 Promise 的语法
    client
    .join({ roomId })
    .then(() => {
     console.log('进房成功');
    })
    .catch(error => {
     console.error('进房失败,请稍后再试' + error);
    });
    // 建议使用 async/await 的语法,实现同样的效果
    try {
    await client.join({ roomId });
    console.log('进房成功');
    } catch (error) {
    console.error('进房失败,请稍后再试' + error);
    }
    // 以主播角色进入房间
    try {
    await client.join({ 
     roomId,
     role: 'anchor' 
    });
    console.log('进房成功');
    } catch (error) {
    console.error('进房失败,请稍后再试' + error);
    }
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持