有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
注意
H5 SDK 仅支持 GME 部分产品能力,支持的接口以此文档为准。请您阅读此文档并评估 H5 SDK 是否适用于您的业务场景。
接口
接口含义
Init
初始化接口
SetTMGDelegate
设置委托
EnterRoom
进入语音房间
EnableMic
开启或关闭采集设备
EnableSpeaker
开启或关闭播放设备
SetMicVolume
设置麦克风音量
ExitRoom
退出语音房间
说明
GME 的接口调用成功后返回值为 QAVError.OK,数值为0。
GME 加入房间需要鉴权,请参考文档关于鉴权部分内容。
设备的操作要在进房成功之后。
Chrome74 以后严格限制 navigator.mediaDevices 在 HTTPS 环境下访问,所以请使用 HTTPS 环境。

接入 JQ

使用 Demo 需要接入 JQ。
<!--Step 2: 添加Audio容器-->
<!--容器,用来承接Audio标签, 请务必留意,不能忽略-->
<div id="gme-audio-wrap"></div>

初始化相关接口

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