一个 SDK 覆盖所有场景下的语音互动需求,轻松助力游戏社交化。还通过极具沉浸感的空间互动语音,让玩家通过声音就能判断好友的远近、方位,给玩家带来身临其境般的游戏体验。
10亿
日服务时长达 10 亿分钟
20,000+
20000+ 设备和云端参数定向适配
99.99%
全球连通率和可用性高于 99.99%
<300ms
端到端通话延时小于 300ms
一个 SDK 覆盖所有场景下的语音互动需求,轻松助力游戏社交化。还通过极具沉浸感的空间互动语音,让玩家通过声音就能判断好友的远近、方位,给玩家带来身临其境般的游戏体验。
兼容 iOS、Android、Windows、macOS、Web、Unity、Unreal、Cocos 等系统及平台,适配 20,000+ 终端和海量外设,保证全平台语音互通。
带有空间感的 3D 语音和范围语音,帮助玩家在游戏的虚拟世界中通过声音的远近和位置判断队友和敌人的方位,还原最真实的空间感。
回声消除、环境音消除、噪声抑制、啸叫抑制专利算法还原清晰听感。弱网环境下仍能顺畅沟通,让玩家听得见、听得清。
超低延迟、稳定、智能路由的实时语音服务,历经亿级用户验证。7×24 小时服务响应,提供服务质量 SLA 保障,运营无忧。
六大洲服务可用,全球部署 2800+ 加速节点,覆盖全球 200+ 国家地区,实现玩家就近接入。
ITMGContext* context = ITMGContextGetInstance(); context->Init(sdkappid, openId);//1. Initializing the SDK context->EnterRoom(roomID, ITMG_ROOM_TYPE_STANDARD, (char*)retAuthBuff,bufferLen); //2. Entering a room void GMETestScene::OnEvent(ITMG_MAIN_EVENT_TYPE eventType,const char* data){ switch (eventType) { case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM: { ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 3. Enabling mic ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 4. Enabling speaker break; } } }
ITMGContext.GetInstance().Init(sdkAppId, openID);//1. Initializing the SDK ITMGContext.GetInstance().EnterRoom(strRoomId, ITMGRoomType.ITMG_ROOM_TYPE_FLUENCY, byteAuthbuffer);//2. Entering a room ITMGContext.GetInstance().OnEnterRoomCompleteEvent += new QAVEnterRoomComplete(OnEnterRoomComplete); void OnEnterRoomComplete(int err, string errInfo) { if (err == 0) { ITMGContext.GetInstance().GetAudioCtrl().EnableMic(true);//3. Enabling mic ITMGContext.GetInstance().GetAudioCtrl().EnableSpeaker(true);//4. Enabling speaker } }
import { GmeSDK } from './GmeSDK/GmeSDK'; if (!this.gmeSDK) { this.gmeSDK = new GmeSDK(); } this.gmeSDK.Init(appId, openId);//1. Initializing the SDK this.gmeSDK.EnterRoom(roomId, roomType, appKey);//2. Entering a room this.gmeSDK.SetTMGDelegate({ onEvent(eventType: number, eventValue: string){ if(eventType == ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM) { this.gmeSDK.EnableMic(micToggle.isChecked);///3. Enabling mic this.gmeSDK.EnableSpeaker(speakerToggle.isChecked);//4. Enabling speaker } } });
ITMGContext.GetInstance(this).Init(sdkAppId, openId);//1. Initializing the SDK ITMGContext.GetInstance(this).EnterRoom(roomId,roomType, authBuffer); //2. Entering a room private ITMGContext.ITMGDelegate itmgDelegate = null; itmgDelegate = new ITMGContext.ITMGDelegate() { public void OnEvent(ITMGContext.ITMG_MAIN_EVENT_TYPE type, Intent data) { if (ITMGContext.ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM == type) { ITMGContext.GetInstance(this).GetAudioCtrl().EnableMic(true); // 3. Enabling mic ITMGContext.GetInstance(this).GetAudioCtrl().EnableSpeaker(true);// 4. Enabling speaker } } }
[[ITMGContext GetInstance] InitEngine:SDKAPPID openID:_openId];//1. Initializing the SDK [[ITMGContext GetInstance] EnterRoom:_roomId roomType:_roomType authBuffer:authBuffer];//2. Entering a room -(void)OnEvent:(ITMG_MAIN_EVENT_TYPE)eventType data:(NSDictionary *)data{ switch (eventType) { case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM: { [[[ITMGContext GetInstance] GetAudioCtrl] EnableMic:YES];// 3. Enabling mic [[[ITMGContext GetInstance] GetAudioCtrl] EnableSpeaker:YES];// 4. Enabling speaker } break; } }
ITMGContext* context = ITMGContextGetInstance(); context->Init(sdkappid, openId);//1. Initializing the SDK context->EnterRoom(roomID, ITMG_ROOM_TYPE_STANDARD, (char*)retAuthBuff,bufferLen); //2. Entering a room void GMETestScene::OnEvent(ITMG_MAIN_EVENT_TYPE eventType,const char* data){ switch (eventType) { case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM: { ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 3. Enabling mic ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 4. Enabling speaker break; } } }
ITMGContext* context = ITMGContextGetInstance(); context->Init(sdkappid, openId);//1. Initializing the SDK context->EnterRoom(roomID, ITMG_ROOM_TYPE_STANDARD, (char*)retAuthBuff,bufferLen); //2. Entering a room void GMETestScene::OnEvent(ITMG_MAIN_EVENT_TYPE eventType,const char* data){ switch (eventType) { case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM: { ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 3. Enabling mic ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 4. Enabling speaker break; } } }
ITMGContext.GetInstance().Init(sdkAppId, openID);//1. Initializing the SDK ITMGContext.GetInstance().EnterRoom(strRoomId, ITMGRoomType.ITMG_ROOM_TYPE_FLUENCY, byteAuthbuffer);//2. Entering a room ITMGContext.GetInstance().OnEnterRoomCompleteEvent += new QAVEnterRoomComplete(OnEnterRoomComplete); void OnEnterRoomComplete(int err, string errInfo) { if (err == 0) { ITMGContext.GetInstance().GetAudioCtrl().EnableMic(true);//3. Enabling mic ITMGContext.GetInstance().GetAudioCtrl().EnableSpeaker(true);//4. Enabling speaker } }
import { GmeSDK } from './GmeSDK/GmeSDK'; if (!this.gmeSDK) { this.gmeSDK = new GmeSDK(); } this.gmeSDK.Init(appId, openId);//1. Initializing the SDK this.gmeSDK.EnterRoom(roomId, roomType, appKey);//2. Entering a room this.gmeSDK.SetTMGDelegate({ onEvent(eventType: number, eventValue: string){ if(eventType == ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM) { this.gmeSDK.EnableMic(micToggle.isChecked);///3. Enabling mic this.gmeSDK.EnableSpeaker(speakerToggle.isChecked);//4. Enabling speaker } } });
ITMGContext.GetInstance(this).Init(sdkAppId, openId);//1. Initializing the SDK ITMGContext.GetInstance(this).EnterRoom(roomId,roomType, authBuffer); //2. Entering a room private ITMGContext.ITMGDelegate itmgDelegate = null; itmgDelegate = new ITMGContext.ITMGDelegate() { public void OnEvent(ITMGContext.ITMG_MAIN_EVENT_TYPE type, Intent data) { if (ITMGContext.ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM == type) { ITMGContext.GetInstance(this).GetAudioCtrl().EnableMic(true); // 3. Enabling mic ITMGContext.GetInstance(this).GetAudioCtrl().EnableSpeaker(true);// 4. Enabling speaker } } }
[[ITMGContext GetInstance] InitEngine:SDKAPPID openID:_openId];//1. Initializing the SDK [[ITMGContext GetInstance] EnterRoom:_roomId roomType:_roomType authBuffer:authBuffer];//2. Entering a room -(void)OnEvent:(ITMG_MAIN_EVENT_TYPE)eventType data:(NSDictionary *)data{ switch (eventType) { case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM: { [[[ITMGContext GetInstance] GetAudioCtrl] EnableMic:YES];// 3. Enabling mic [[[ITMGContext GetInstance] GetAudioCtrl] EnableSpeaker:YES];// 4. Enabling speaker } break; } }
ITMGContext* context = ITMGContextGetInstance(); context->Init(sdkappid, openId);//1. Initializing the SDK context->EnterRoom(roomID, ITMG_ROOM_TYPE_STANDARD, (char*)retAuthBuff,bufferLen); //2. Entering a room void GMETestScene::OnEvent(ITMG_MAIN_EVENT_TYPE eventType,const char* data){ switch (eventType) { case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM: { ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 3. Enabling mic ITMGContextGetInstance()->GetAudioCtrl()->EnableSpeaker(true); // 4. Enabling speaker break; } } }
测试无忧,按量支付,用量尽在掌控