tencent cloud

文档反馈

快速入门

最后更新时间:2022-06-15 16:17:49

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

    GME 快速入门文档只提供最主要的接入接口,更多详细接口请参考 相关接口文档

    重要接口 接口含义
    Init 初始化 GME
    Poll 触发事件回调
    EnterRoom 进房
    EnableMic 开麦克风
    EnableSpeaker 开扬声器
    • GME 使用前请对工程进行配置,否则 SDK 不生效。
    • GME 的接口调用成功后返回值为 AV_OK,数值为 0。
    • GME 的接口调用要在同一个线程下。
    • GME 需要周期性的调用 Poll 接口触发事件回调。
    • GME 回调信息参考回调消息列表。
    • 设备的操作要在进房成功之后。
    • 错误码详情可参考 错误码

    快速接入步骤

    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* authBuffer , 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

    示例代码

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

    8、开启关闭扬声器

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

    函数原型

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

    示例代码

    ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true);
    
    联系我们

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

    技术支持

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

    7x24 电话支持