tencent cloud

文档反馈

接口文档

最后更新时间:2021-06-30 16:43:03
    注意

    H5 SDK 仅支持 GME 部分产品能力,支持的接口以此文档为准。请您阅读此文档并评估 H5 SDK 是否适用于您的业务场景。

    为方便 H5 开发者调试和接入腾讯云游戏多媒体引擎产品 API,这里向您介绍适用于 H5 开发的接入技术文档。

    接口 接口含义
    Init 初始化接口
    SetTMGDelegate 设置委托
    EnterRoom 进入语音房间
    EnableMic 开启或关闭采集设备
    EnableSpeaker 开启或关闭播放设备
    SetMicVolume 设置麦克风音量
    ExitRoom 退出语音房间
    说明:

    • GME 的接口调用成功后返回值为 QAVError.OK,数值为0。
    • GME 加入房间需要鉴权,请参考文档关于鉴权部分内容。
    • 设备的操作要在进房成功之后。
    • Chrome74 以后严格限制 navigator.mediaDevices 在 HTTPS 环境下访问,所以请使用 HTTPS 环境。

    初始化相关接口

    未初始化前,SDK 处于未初始化阶段,需要初始化鉴权后,通过初始化 SDK,才可以进房。

    初始化 SDK

    参数获取请参考 接入指引
    此接口需要来自腾讯云控制台的 SDKAppID 号码作为参数,再加上 openId,这个 openId 是唯一标识一个用户,规则由 App 开发者自行制定,App 内不重复即可(目前只支持 INT64)。

    注意:

    初始化 SDK 之后才可以进房。

    函数原型

    WebGMEAPI.fn.Init = function (document, SdkAppId, openId) {...}
    
    参数 意义
    document HTML DOM Document 对象
    SdkAppId 来自腾讯云控制台的 SdkAppId 号码
    openId 用户的帐号,由开发者定义,必须大于10000,用于标识用户

    示例代码

    const cSdkAppId = () => document.getElementById("input-SdkAppId").value;
    const cOpenID = () => document.getElementById("input-OpenID").value;
    gmeAPI.Init(document, cSdkAppId(), cOpenID());
    

    设置回调

    接口类采用 Delegate 方法用于向应用程序发送回调通知。将回调函数注册给 SDK,用于接受回调的信息。将回调函数注册给 SDK,要在进房之前设置。

    函数原型

    WebGMEAPI.fn.SetTMGDelegate = function (delegate){...}
    
    参数 意义
    onEvent SDK 回调事件

    示例代码

    gmeAPI.SetTMGDelegate(onEvent);
    

    实时语音相关接口

    初始化之后,SDK 调用进房后进去了房间,才可以进行实时语音通话。

    加入房间

    用生成的鉴权信息进房,会收到消息为 ITMG_MAIN_EVENT_TYPE_ENTER_ROOM 的回调。加入房间默认不打开麦克风及扬声器。

    函数原型

    WebGMEAPI.fn.EnterRoom = function (roomId, roomType, authBuffer) {...}
    
    参数 意义
    roomId 房间号,最大支持127字符
    roomType 房间音频类型
    authBuffer 鉴权码,获取方式请参考 工程配置

    示例代码

    function bindButtonEvents() {
         $("#start_btn").click(function () {
             console.log('start!');
             //步骤1,  获取AuthBuffer
             var FetchSigCgi = 'http://134.175.146.244:10005/';
             $.ajax({
                 type: "POST",
                 url: FetchSigCgi,
                 dataType: 'json',
                 data: {
                     sdkappid: cSdkAppId(),
                     roomid: cRoomNum(),
                     openid: cOpenID(),
                 },
                 success: function (json) {
                     //步骤2, 获取AuthBuffer成功
                     if (json && json.errorCode === 0) {
                         let userSig = json.userSig;
                         gmeAPI.Init(document, cSdkAppId(), cOpenID());
                         gmeAPI.SetTMGDelegate(onEvent);
                         gmeAPI.EnterRoom(cRoomNum(), 1, userSig);
                     } else {
                         console.error(json);
                     }
                 },
                 error: function (err) {
                     console.error(err);
                 }
             });
         });
    

    事件回调

    加入房间完成后会发送信息 ITMG_MAIN_EVENT_TYPE_ENTER_ROOM,在 OnEvent 函数中进行判断。

    示例代码

    onEvent = function (eventType, result) {
          if (eventType === gmeAPI.event.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM)
         {
             //进房成功
         }
         else if (eventType === gmeAPI.event.ITMG_MAIN_EVENT_TYPE_USER_UPDATE)
         {
             app._data.downStreamInfoList = result.PeerInfo;//接收的对端的信息 ,参见下表
             app._data.brSend = result.UploadBRSend;//上传语音数据的码率
             app._data.rtt = result.UploadRTT;//上传RTT
         }
         else if (eventType === gmeAPI.event.ITMG_MAIN_EVENT_TYPE_EXIT_ROOM)
         {
             //退房成功
         }
         else if (eventType === gmeAPI.event.ITMG_MAIN_EVENT_TYPE_ROOM_DISCONNECT)
         {
             //房间断开连接
         }
     };
    

    接收的对端的信息如下 downStreamInfoList:

    参数 意义
    brRecv 接收的码率
    delay 接收的延迟
    jitterBufferMs 抖动延迟
    jitterReceived 接收 jitter

    退出房间

    通过调用此接口可以退出所在房间。这是一个异步接口,退房之后有回调,返回值为 AV_OK 的时候代表异步投递成功。

    函数原型

    WebGMEAPI.fn.ExitRoom = function (){...}
    

    示例代码

    gmeAPI.ExitRoom();
    

    开启关闭麦克风

    此接口用来开启关闭麦克风。加入房间默认不打开麦克风及扬声器。

    函数原型

    WebGMEAPI.fn.EnableMic = function (bEnable) {...}
    
    参数 意义
    isEnabled 如果需要打开麦克风,则传入的参数为 true,如果关闭麦克风,则参数为 false

    示例代码

    gmeAPI.EnableMic(false);
    

    设置麦克风的音量

    此接口用于设置麦克风的音量。参数 volume 用于设置麦克风的音量,当数值为0的时候表示静音,当数值为100的时候表示音量不增不减,默认数值为100。

    函数原型

    WebGMEAPI.fn.SetMicVolume = function (volume){...}
    
    参数 意义
    volume 设置音量,范围0到100

    示例代码

    gmeAPI.SetMicVolume(100);
    

    开启关闭扬声器

    此接口用于开启关闭扬声器。

    函数原型

    WebGMEAPI.fn.EnableSpeaker = function (bEnable){...}
    
    参数 意义
    isEnabled 如果需要关闭扬声器,则传入的参数为 false,如果打开扬声器,则参数为 true

    示例代码

    gmeAPI.EnableSpeaker(true);
    
    联系我们

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

    技术支持

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

    7x24 电话支持