接口文档

最近更新时间:2019-04-26 20:28:41

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

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

说明:

  • GME 的接口调用成功后返回值为 QAVError.OK,数值为0。
  • GME 加入房间需要鉴权,请参考文档关于鉴权部分内容。
  • 设备的操作要在进房成功之后。

初始化相关接口

未初始化前,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_EVNET_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);