tencent cloud

文档反馈

快速入门

最后更新时间:2024-01-18 15:11:45
    为方便 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 电话支持