游戏多媒体引擎 快速入门

为方便 Cocos2D 开发者调试和接入腾讯云游戏多媒体引擎产品 API,这里向你介绍适用于 Cocos2D 开发的快速接入文档。GME 快速入门文档只提供最主要的接入接口,更多详细接口请参考 相关接口文档。

相关产品
游戏多媒体引擎 产品页,含版本规格、价格与购买入口。
重要接口 接口含义
Init 初始化 GME
Poll 触发事件回调
EnterRoom 进房
EnableMic 开麦克风
EnableSpeaker 开扬声器

二、1、获取单例

在使用语音功能时,需要首先获取 ITMGContext 对象。

三、示例代码

ITMGContext* context = ITMGContextGetInstance();context->SetTMGDelegate(this);

四、2、初始化 SDK

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

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

五、函数原型

ITMGContext virtual int Init(const char* sdkAppId, const char* openID)

参数 类型 含义
sdkAppId char* 来自腾讯云控制台的 AppId 号码。
openId char* OpenID 只支持 Int64 类型(转为 char* 传入),数值必须大于 10000,用于标识用户

六、示例代码

#define SDKAPPID3RD "1400089356"cosnt char* openId="10001";ITMGContext* context = ITMGContextGetInstance();context->Init(SDKAPPID3RD, openId);

七、3、触发事件回调

通过在 update 里面周期的调用 Poll 可以触发事件回调。

八、函数原型

class ITMGContext {protected: virtual ~ITMGContext() {}public: virtual void Poll()= 0;}

九、示例代码

ITMGContextGetInstance()->Poll();

十、4、鉴权信息

生成 AuthBuffer,用于相关功能的加密和鉴权,如正式发布请使用后台部署密钥,后台部署请参考 鉴权密钥。离线语音获取鉴权时,房间号参数必须填 null。

十一、函数原型

int QAVSDK_AuthBuffer_GenAuthBuffer(unsigned int dwSdkAppID, const char* strRoomID, const char* strOpenID, const char* strKey, unsigned char* strAuthBuffer, unsigned int bufferLength);

参数 类型 含义
dwSdkAppID int 来自腾讯云控制台的 AppId 号码。
strRoomID char* 房间号,最大支持127字符(离线语音房间号参数必须填 null)
strOpenID char* 用户标识。与 Init 时候的 openID相同。
strKey char* 来自腾讯云 控制台 的权限密钥。
strAuthBuffer char* 返回的 authbuff
bufferLength int 传入的 authbuff 长度,建议为 500

十二、示例代码

unsigned int bufferLen = 512;unsigned char retAuthBuff[512] = {0};QAVSDK_AuthBuffer_GenAuthBuffer(atoi(SDKAPPID3RD), roomId, "10001", AUTHKEY,retAuthBuff,bufferLen);

十三、5、加入房间

用生成的鉴权信息进房,会收到消息为 ITMG_MAIN_EVENT_TYPE_ENTER_ROOM 的回调。加入房间默认不打开麦克风及扬声器。返回值为 AV_OK 的时候代表成功。
如果普通语音进房,业务方面无涉及范围语音需求,则使用普通进房接口。详细信息请查看 范围语音。

十四、函数原型

ITMGContext virtual int EnterRoom(const char* roomID, ITMG_ROOM_TYPE roomType, const char* authBuff, int buffLen)

参数 类型 含义
roomID char* 房间号,最大支持127字符
roomType ITMG_ROOM_TYPE 房间音频类型
authBuffer char* 鉴权码
buffLen int 鉴权码长度

房间音频类型请参考 音质选择。

十五、示例代码

ITMGContext* context = ITMGContextGetInstance();context->EnterRoom(roomID, ITMG_ROOM_TYPE_STANDARD, (char*)retAuthBuff,bufferLen);

十六、6、加入房间事件的回调

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

十七、示例代码

void TMGTestScene::OnEvent(ITMG_MAIN_EVENT_TYPE eventType,const char* data){ switch (eventType) { case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM: { //进行处理 break; } }}

十八、7、开启关闭麦克风

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

十九、函数原型

ITMGAudioCtrl virtual int EnableMic(bool bEnabled)

参数 类型 含义
bEnabled bool 如果需要打开麦克风,则传入的参数为 true,如果关闭麦克风,则参数为 false

20、示例代码

ITMGContextGetInstance()->GetAudioCtrl()->EnableMic(true);

21、8、开启关闭扬声器

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

22、函数原型

ITMGAudioCtrl virtual int EnableSpeaker(bool enabled)

参数 类型 含义
enable bool 如果需要关闭扬声器,则传入的参数为 false,如果打开扬声器,则参数为 true

23、示例代码

ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true);

赞 (0)
上一篇 4天前
下一篇 4天前