Init
and Poll
.AppID
and key. For more information, see Activating Services.GmeError.AV_OK
will be returned with the value being 0
.Poll
API should be called periodically for GME to trigger event callbacks.API | Description |
Init | Initializes GME. |
Poll | Triggers the event callback. |
Pause | Pauses the system. |
Resume | Resumes the system. |
Uninit | Uninitializes GME. |
import 'package:gme/gme.dart';import 'package:gme/gmeType.dart';
GmeSDK
object first.ITMGContext context = ITMGContext.GetInstance();
Init
API before you can use the real-time voice, voice message, and speech-to-text services. The Init
API must be called in the same thread as other APIs. We recommend you call all APIs in the main thread.//class ITMGContextFuture<int> InitSDK(String appID, String openID)
Parameter | Type | Description |
sdkAppId | string | |
openID | string | `openID` can only be in `int64` type, which is passed in after being converted to a string. You can customize its rules, and it must be unique in the application. To pass in `openID` as a string, submit a ticket for application. |
Returned Value | Description |
GmeError.AV_OK= 0 | SDK initialized successfully. |
AV_ERR_SDK_NOT_FULL_UPDATE=7015 | Solution: Check whether the SDK file is complete. We recommend that you delete it and then import the SDK again. |
AV_ERR_SDK_NOT_FULL_UPDATE
is only a reminder but will not cause an initialization failure.string SDKAPPID3RD = "14000xxxxx";string openId="10001";int res = await ITMGContext.GetInstance().InitSDK(SDKAPPID3RD, openId);if (ret != GmeError.AV_OK){print("Init SDK Error");return;}
Delegate
method to send callback notifications to the application. Register the callback function to the SDK for receiving callback messages before room entry.// When initializing the SDKITMGContext.GetInstance().SetEvent(handleEventMsg);// Callback methodvoid handleEventMsg(int eventType, String data) async {// enterRoom eventprint("AddDelegate3" + eventType.toString());switch (eventType) {case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM:{// Callback of room entry}break;case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_CHANGE_ROOM_TYPE:{// Callback of room switch}break;}}
Poll
API to trigger event callbacks. The Poll
API is GME's message pump and should be called periodically for GME to trigger event callbacks; otherwise, the entire SDK service will run abnormally. For more information, see the EnginePollHelper
file in SDK Download Guide.Poll
API periodicallyPoll
API must be called periodically and in the main thread to avoid abnormal API callbacks.Future<void> Poll();
Future<void> pollTimer() async {_pollTimer = Timer.periodic(Duration(milliseconds: 100), (Timer timer) {ITMGContext.GetInstance().Poll();});}
Pause
event occurs in the system, the engine should also be notified for pause. For example, when the application switches to the background (OnApplicationPause, isPause=True), and you do not need the background to play back the audio in the room, please call Pause
API to pause the GME service.Future<int> Pause()
Resume
event occurs in the system, the engine should also be notified for resumption. The Resume
API only supports resuming voice chat.Future<int> Resume()
openid
, switching game account requires uninitializing GME and then using the new openid
to initialize again.Future<int> Uninit()
API | Description |
GenAuthBuffer | Calculates the local authentication key. |
EnterRoom | Enters a room. |
ExitRoom | Exits a room. |
IsRoomEntered | Determines whether room entry is successful. |
AuthBuffer
for encryption and authentication of relevant features. For release in the production environment, use the backend deployment key as detailed in Authentication Key. Future<Uint8List> GenAuthBuffer(String appID, String roomID, String openID, String key)
Parameter | Type | Description |
appID | string | `AppID` from the Tencent Cloud console |
roomID | string | Room ID, which can contain up to 127 characters. |
openID | string | User ID, which is the same as `openID` during initialization. |
key | string |
Uint8List userSig = await ITMGContext.GetInstance().GenAuthBuffer(_editAppID.text, _editRoomID.text, _editOpenID.text, _editKey.text);int res = await ITMGContext.GetInstance().EnterRoom(_editRoomID.text, 1, userSig);
0
, the room entry is successful. If 0
is returned from the EnterRoom
API, it doesn't necessarily mean that the room entry is successful.ChangeRoomType
API will the audio type of the room be changed.Future<int> EnterRoom(String roomID, int roomType, Uint8List authBuffer)
Parameter | Type | Description |
roomId | string | Room ID, which can contain up to 127 characters. |
roomType | ITMGRoomType | Room type. We recommend that you select `ITMG_ROOM_TYPE_FLUENCY` for games. For more information on room audio types, see Sound Quality. |
appKey | Uint8List | Authentication key |
int res = await ITMGContext.GetInstance().EnterRoom(_editRoomID.text, 1, authBuffer);
ITMG_MAIN_EVENT_TYPE_ENTER_ROOM
event type will be called back to notify the room entry result, which can be listened on for processing. A successful callback means that the room entry is successful, and the billing starts.// Listen on an event:void handleEventMsg(int eventType, String data) async {switch (eventType) {case ITMG_MAIN_EVENT_TYPE_ENTER_ROOM:{// The process after room entry}}}ITMGContext.GetInstance().SetEvent(handleEventMsg);
Message | Data | Sample |
ITMG_MAIN_EVENT_TYPE_ENTER_ROOM | result; error_info | {"error_info":"","result":0} |
ITMG_MAIN_EVENT_TYPE_ROOM_DISCONNECT | result; error_info | {"error_info":"waiting timeout, please check your network","result":0} |
ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ROOM_DISCONNECT
. At this time, the SDK will automatically reconnect, and the callback is ITMG_MAIN_EVENT_TYPE_RECONNECT_START
. When the reconnection is successful, there will be a callback ITMG_MAIN_EVENT_TYPE_RECONNECT_SUCCESS
.Error Code | Cause and Solution |
7006 | Authentication failed. Possible causes: - The `AppID` does not exist or is incorrect.- An error occurred while authenticating the `authbuff`.- Authentication expired.- The `OpenId` does not meet the specification. |
7007 | The user was already in another room. |
1001 | The user was already in the process of entering a room but repeated this operation. We recommend that you not call the room entering API until the room entry callback is returned. |
1003 | The user was already in the room and called the room entering API again. |
1101 | Make sure that the SDK is initialized, `OpenId` complies with the rules, the APIs are called in the same thread, and the `Poll` API is called normally. |
AV_OK
indicates a successful async delivery. If there is a scenario in the application where room entry is performed immediately after room exit, you don't need to wait for the RoomExitComplete
callback notification from the ExitRoom
API; instead, you can directly call the EnterRoom
API.Future<int> ExitRoom()
ITMGContext.GetInstance().ExitRoom();
ITMG_MAIN_EVENT_TYPE_EXIT_ROOM
. The sample code is shown below:void handleEventMsg(int eventType, String data) async{switch (eventType) {case ITMG_MAIN_EVENT_TYPE_EXIT_ROOM:{// The process after room exitbreak;}}}ITMGContext.GetInstance().SetEvent(handleEventMsg);
Future<bool> IsRoomEntered()
bool res = await ITMGContext.GetInstance().IsRoomEntered();
API/Notification | Description |
ITMG_MAIN_EVNET_TYPE_USER_UPDATE | The member status changed. |
AddAudioBlackList | Mutes a member in the room. |
RemoveAudioBlackList | Unmutes a user. |
IsOpenIdInAudioBlackList | Queries whether the user of the specified `openid` is muted. |
ITMG_MAIN_EVNET_TYPE_USER_UPDATE
containing event_id
, count
, and openIdList
will be returned, which will be identified in the OnEvent
notification.EVENT_ID_ENDPOINT_NO_AUDIO
audio event will be sent only when the threshold is exceeded, that is, other members in the room can receive the notification that the local user stops speaking only after the local client captures no voice for two seconds.GetVolumeById
API.event_id | Description | Maintenance |
EVENT_ID_ENDPOINT_ENTER | Return the `openid` of the member entering the room. | Member list |
EVENT_ID_ENDPOINT_EXIT | Return the `openid` of the member exiting the room. | Member list |
EVENT_ID_ENDPOINT_HAS_AUDIO | Return the `openid` of the member sending audio packets in the room. This event can be used to determine whether a user is speaking and display the voiceprint effect. | Chat member list |
EVENT_ID_ENDPOINT_NO_AUDIO | Return the `openid` of the member stopping sending audio packets in the room. | Chat member list |
void handleEventMsg(int eventType, String data) async {if (eventType == ITMG_MAIN_EVENT_TYPE_ENTER_ROOM){// Processswitch (eventID){case EVENT_ID_ENDPOINT_ENTER:// A member enters the roombreak;case EVENT_ID_ENDPOINT_EXIT:// A member exits the roombreak;case EVENT_ID_ENDPOINT_HAS_AUDIO:// A member sends audio packetsbreak;case EVENT_ID_ENDPOINT_NO_AUDIO:// A member stops sending audio packetsbreak;default:break;}break;}}
0
indicates that the call is successful. Assume that users A, B, and C are all speaking using their mic in a room: Future<int> AddAudioBlackList(String openID)
Parameter | Type | Description |
openID | string | `openid` of the user to be blocked |
res = await ITMGContext.GetInstance().GetAudioCtrl().AddAudioBlackList(_editRoomManagerID.text);
Future<int> RemoveAudioBlackList(String openID)
Parameter | Type | Description |
openId | string | ID to be unblocked |
res = await ITMGContext.GetInstance().GetAudioCtrl().RemoveAudioBlackList(_editRoomManagerID.text);
EnableMic
or EnableSpeaker
API.EnableAudioCaptureDevice
once during room entry and call EnableAudioSend
to enable the user to speak while pressing the button.API | Description |
EnableMic | Enables/Disables the mic. |
GetMicState | Gets the mic status. |
EnableAudioCaptureDevice | Enables/Disables the capturing device. |
IsAudioCaptureDeviceEnabled | Gets the capturing device status. |
EnableAudioSend | Enables/Disables audio upstreaming. |
IsAudioSendEnabled | Gets the audio upstreaming status. |
GetMicLevel | Gets the real-time mic volume level. |
GetSendStreamLevel | Gets the real-time audio upstreaming volume level. |
SetMicVolume | Sets the mic volume level. |
GetMicVolume | Gets the mic volume level. |
Future<int> EnableMic(bool enable)
Parameter | Type | Description |
isEnabled | bool | To enable the mic, set this parameter to true ; otherwise, set it to false . |
// Turn on micint res = await ITMGContext.GetInstance().GetAudioCtrl().EnableMic(true);
Future<int> GetMicState()
int micState = await ITMGContext.GetInstance().GetAudioCtrl().GetMicState();
Future<int> EnableAudioCaptureDevice(bool enable)
Parameter | Type | Description |
enable | bool | To enable the capturing device, set this parameter to true , otherwise, set it to false . |
// Enable capturing deviceint res = await ITMGContext.GetInstance().GetAudioCtrl().EnableAudioCaptureDevice(true);
Future<bool> IsAudioCaptureDeviceEnabled()
bool res = await ITMGContext.GetInstance().GetAudioCtrl().IsAudioCaptureDeviceEnabled();
EnableAudioCaptureDevice
API.Future<int> EnableAudioSend(bool enable)
Parameter | Type | Description |
isEnabled | bool | To enable audio upstreaming, set this parameter to true ; otherwise, set it to false . |
int res = await ITMGContext.GetInstance().GetAudioCtrl().EnableAudioSend(isCheck);
Future<bool> IsAudioSendEnabled()
bool IsAudioSend = await ITMGContext.GetInstance().GetAudioCtrl().IsAudioSendEnabled();
Future<int> GetMicLevel()
int res = await ITMGContext.GetInstance().GetAudioCtrl().GetMicLevel();
Future<int> GetSendStreamLevel()
int res = await ITMGContext.GetInstance().GetAudioCtrl().GetSendStreamLevel();
volume
, which is equivalent to attenuating or gaining the captured sound.Future<int> SetMicVolume(int volume)
Parameter | Type | Description |
volume | number | Value range: 0–200. Default value: `100`. `0` indicates that the audio is mute, while `100` indicates that the volume level remains unchanged. |
int volume = 100;int res = await ITMGContext.GetInstance().GetAudioCtrl().SetMicVolume(volume);
101
indicates that the SetMicVolume
API has not been called.Future<int> GetMicVolume()
int res = await ITMGContext.GetInstance().GetAudioCtrl().GetMicVolume();
API | Description |
EnableSpeaker | Enables/Disables the speaker. |
GetSpeakerState | Gets the speaker status. |
EnableAudioPlayDevice | Enables/Disables the playback device. |
IsAudioPlayDeviceEnabled | Gets the playback device status. |
EnableAudioRecv | Enables/Disables audio downstreaming. |
IsAudioRecvEnabled | Gets the audio downstreaming status. |
GetSpeakerLevel | Gets the real-time speaker volume level. |
GetRecvStreamLevel | Gets the real-time downstreaming audio levels of other members in the room. |
SetSpeakerVolume | Sets the speaker volume level. |
GetSpeakerVolume | Gets the speaker volume level. |
Future<int> EnableSpeaker(bool enable)
Parameter | Type | Description |
bEnable | bool | To disable the speaker, set this parameter to `false`; otherwise, set it to `true`. |
// Turn on the speakerawait ITMGContext.GetInstance().GetAudioCtrl().EnableSpeaker(isCheck);
Future<int> GetSpeakerState()
int spkState = await ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerState();
Future<int> EnableAudioPlayDevice(bool enable)
Parameter | Type | Description |
enable | bool | To disable the playback device, set this parameter to `false`; otherwise, set it to `true`. |
int res = await ITMGContext.GetInstance().GetAudioCtrl().EnableAudioPlayDevice(isCheck);
Future<bool> IsAudioPlayDeviceEnabled()
bool res = await ITMGContext.GetInstance().GetAudioCtrl().IsAudioPlayDeviceEnabled();
EnableAudioPlayDevice
API.Future<int> EnableAudioRecv(bool enable)
Parameter | Type | Description |
isEnabled | bool | To enable audio downstreaming, set this parameter to `true`; otherwise, set it to `false`. |
int res = await ITMGContext.GetInstance().GetAudioCtrl().EnableAudioRecv(isCheck);
Future<bool> IsAudioRecvEnabled()
bool res = await ITMGContext.GetInstance().GetAudioCtrl().IsAudioRecvEnabled();
Future<int> GetSpeakerLevel()
bool res = await ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerLevel();
Future<int> GetRecvStreamLevel(String openID)
Parameter | Type | Description |
openId | string | `openId` of another member in the room |
int res = await ITMGContext.GetInstance().GetAudioCtrl().GetRecvStreamLevel(_editRoomManagerID.text);
Future<int> SetSpeakerVolumeByOpenID(String openId, int volume)
Parameter | Type | Description |
openId | string | `OpenID` of the target user |
volume | number | Percentage. Recommended value range: 0-200. Default value: `100`. |
int res = await ITMGContext.GetInstance().GetAudioCtrl().SetSpeakerVolumeByOpenID(_editRoomManagerID.text, 100);
SetSpeakerVolumeByOpenID
.Future<int> GetSpeakerVolumeByOpenID(String openId)
Parameter | Type | Description |
openId | string | `OpenID` of the target user |
int res = await ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerVolumeByOpenID(_editRoomManagerID.text);
Future<int> SetSpeakerVolume(int volume)
Parameter | Type | Description |
volume | number | Volume level. Value range: 0-200. Default value: `100`. `0` indicates that the audio is mute, while `100` indicates that the volume level remains unchanged. |
int volume = value.toInt();int res = await ITMGContext.GetInstance().GetAudioCtrl().SetSpeakerVolume(volume);
101
indicates that the SetSpeakerVolume
API has not been called.
"Level" indicates the real-time volume, and "Volume" the speaker volume. The final volume = Level * Volume%. For example, if the "Level" is 100 and "Volume" is 60, the final volume is "60".Future<int> GetSpeakerVolume()
int res = await ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerVolume();
EnableLoopBack+EnableSpeaker
before you can hear your own voice.Future<int> EnableLoopBack(bool enable)
Parameter | Type | Description |
enable | bool | Specifies whether to enable. |
int res = await ITMGContext.GetInstance().GetAudioCtrl().EnableLoopBack(true);
EnterRoom
API.Future<int> GetRoomType()
int curType = await ITMGContext.GetInstance().GetRoom().GetRoomType();
ITMG_MAIN_EVENT_TYPE_CHANGE_ROOM_TYPE
. The audio type of the room is determined by the first user to enter the room. After that, if a member in the room changes the room type, it will take effect for all members there.Future<int> ChangeRoomType(int roomType)
Parameter | Type | Description |
roomtype | number | Room type to be switched to. For room audio types, see the `EnterRoom` API. |
int res = await ITMGContext.GetInstance().GetRoom().ChangeRoomType(1);
ITMG_MAIN_EVENT_TYPE_CHANGE_ROOM_TYPE
will be returned in the callback. The returned parameters include result
, error_info
, and new_room_type
. The new_room_type
represents the following information. The event message will be identified in the OnEvent
function.Event Subtype | Parameter | Description |
ITMG_ROOM_CHANGE_EVENT_ENTERROOM | 1 | Indicates that the existing audio type is inconsistent with and changed to that of the entered room. |
ITMG_ROOM_CHANGE_EVENT_START | 2 | Indicates that a user is already in the room and the audio type starts changing (e.g., calling the `ChangeRoomType` API to change the audio type). |
ITMG_ROOM_CHANGE_EVENT_COMPLETE | 3 | Indicates that a user is already in the room and the audio type has been changed. |
ITMG_ROOM_CHANGE_EVENT_REQUEST | 4 | Indicates that a room member calls the `ChangeRoomType` API to request a change of room audio type. |
case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_CHANGE_ROOM_TYPE:{// Process room type events}break;
ITMG_MAIN_EVENT_TYPE_CHANGE_ROOM_QUALITY
. The returned parameters include weight
, loss
, and delay
, which are as detailed below:Parameter | Type | Description |
weight | number | Value range: 1–50. `50` indicates excellent sound quality, `1` indicates very poor (barely usable) sound quality, and `0` represents an initial meaningless value. Generally, if the value is below 30, you can remind users that the network is poor and recommend them to switch the network. |
loss | var | Upstream packet loss rate |
delay | number | Voice chat delay in ms |
Future<String> GetSDKVersion()
_sdkVersions = await ITMGContext.GetInstance().GetSDKVersion();
Future<void> SetAppVersion(String appVersion)
Parameter | Type | Description |
appVersion | string | Application name and version |
await ITMGContext.GetInstance().SetAppVersion("gme V2.0.0");
Future<int> SetLogLevel(int levelWrite, int levelPrint)
Parameter | Type | Description |
level | number | Sets the log level. `TMG_LOG_LEVEL_NONE` indicates not to log. Default value: `TMG_LOG_LEVEL_INFO`. |
level
description:level | Description |
TMG_LOG_LEVEL_NONE | Does not print logs |
TMG_LOG_LEVEL_ERROR | Prints error logs (default) |
TMG_LOG_LEVEL_INFO | Prints info logs |
TMG_LOG_LEVEL_DEBUG | Prints debug logs |
TMG_LOG_LEVEL_VERBOSE | Prints verbose logs |
ITMGContext.GetInstance().SetLogLevel(ITMG_LOG_LEVEL.TMG_LOG_LEVEL_ERROR, ITMG_LOG_LEVEL.TMG_LOG_LEVEL_ERROR);
Future<int> SetLogPath(String logDir)
Parameter | Type | Description |
logPath | string | Path |
String curPath = ""// Set a path by yourselfITMGContext.GetInstance().SetLogPath(curPath);
Future<String> GetQualityTips()
String curQualityTips = await ITMGContext.GetInstance().GetRoom().GetQualityTips();
Message | Description | Data | Sample |
ITMG_MAIN_EVENT_TYPE_ENTER_ROOM | A member entered the audio room. | result; error_info | {"error_info":"","result":0} |
ITMG_MAIN_EVENT_TYPE_EXIT_ROOM | A member exited the audio room. | result; error_info | {"error_info":"","result":0} |
ITMG_MAIN_EVENT_TYPE_ROOM_DISCONNECT | The room was disconnected for network or other reasons. | result; error_info | {"error_info":"waiting timeout, please check your network","result":0} |
ITMG_MAIN_EVNET_TYPE_USER_UPDATE | Room members were updated. | user_list; event_id | {"event_id":1,"user_list":["0"]} |
ITMG_MAIN_EVENT_TYPE_RECONNECT_START | The reconnection to the room started. | result; error_info | {"error_info":"","result":0} |
ITMG_MAIN_EVENT_TYPE_RECONNECT_SUCCESS | The reconnection to the room succeeded. | result; error_info | {"error_info":"","result":0} |
ITMG_MAIN_EVENT_TYPE_SWITCH_ROOM | The room was quickly switched. | result; error_info | {"error_info":"","result":0} |
ITMG_MAIN_EVENT_TYPE_CHANGE_ROOM_TYPE | The room status was changed. | result; error_info; sub_event_type; new_room_type | {"error_info":"","new_room_type":0,"result":0} |
ITMG_MAIN_EVENT_TYPE_ROOM_SHARING_START | Cross-room mic connect started. | result; | {"result":0} |
ITMG_MAIN_EVENT_TYPE_ROOM_SHARING_STOP | Cross-room mic connect stopped. | result; | {"result":0} |
ITMG_MAIN_EVENT_TYPE_SPEAKER_DEFAULT_DEVICE_CHANGED | The default speaker device was changed. | result; error_info | {"deviceID":"{0.0.0.00000000}.{a4f1e8be-49fa-43e2-b8cf-dd00542b47ae}","deviceName":"Speaker (Realtek High Definition Audio)","error_info":"","isNewDevice":true,"isUsedDevice":false,"result":0} |
ITMG_MAIN_EVENT_TYPE_SPEAKER_NEW_DEVICE | A new speaker device was added. | result; error_info | {"deviceID":"{0.0.0.00000000}.{a4f1e8be-49fa-43e2-b8cf-dd00542b47ae}","deviceName":"Speaker (Realtek High Definition Audio)","error_info":"","isNewDevice":true,"isUsedDevice":false,"result":0} |
ITMG_MAIN_EVENT_TYPE_SPEAKER_LOST_DEVICE | A speaker device was lost. | result; error_info | {"deviceID":"{0.0.0.00000000}.{a4f1e8be-49fa-43e2-b8cf-dd00542b47ae}","deviceName":"Speaker (Realtek High Definition Audio)","error_info":"","isNewDevice":false,"isUsedDevice":false,"result":0} |
ITMG_MAIN_EVENT_TYPE_MIC_NEW_DEVICE | A new mic device was added. | result; error_info | {"deviceID":"{0.0.1.00000000}.{5fdf1a5b-f42d-4ab2-890a-7e454093f229}","deviceName":"Mic (Realtek High Definition Audio)","error_info":"","isNewDevice":true,"isUsedDevice":true,"result":0} |
ITMG_MAIN_EVENT_TYPE_MIC_LOST_DEVICE | A mic device was lost. | result; error_info | {"deviceID":"{0.0.1.00000000}.{5fdf1a5b-f42d-4ab2-890a-7e454093f229}","deviceName":"Mic (Realtek High Definition Audio)","error_info":"","isNewDevice":false,"isUsedDevice":true,"result":0} |
ITMG_MAIN_EVENT_TYPE_MIC_DEFAULT_DEVICE_CHANGED | The default mic device was changed. | result; error_info | {"deviceID":"{0.0.1.00000000}.{5fdf1a5b-f42d-4ab2-890a-7e454093f229}","deviceName":"Mic (Realtek High Definition Audio)","error_info":"","isNewDevice":false,"isUsedDevice":true,"result":0} |
ITMG_MAIN_EVENT_TYPE_CHANGE_ROOM_QUALITY | The room quality changed. | weight; loss; delay | {"weight":5,"loss":0.1,"delay":1} |
ITMG_MAIN_EVNET_TYPE_PTT_RECORD_COMPLETE | Voice message recording was completed. | result; file_path | {"file_path":"","result":0} |
ITMG_MAIN_EVNET_TYPE_PTT_UPLOAD_COMPLETE | Voice message upload was completed. | result; file_path;file_id | {"file_id":"","file_path":"","result":0} |
ITMG_MAIN_EVNET_TYPE_PTT_DOWNLOAD_COMPLETE | Voice message download was completed. | result; file_path;file_id | {"file_id":"","file_path":"","result":0} |
ITMG_MAIN_EVNET_TYPE_PTT_PLAY_COMPLETE | Voice message playback was completed. | result; file_path | {"file_path":"","result":0} |
ITMG_MAIN_EVNET_TYPE_PTT_SPEECH2TEXT_COMPLETE | Fast speech-to-text conversion was completed. | result; text;file_id | {"file_id":"","text":"","result":0} |
ITMG_MAIN_EVNET_TYPE_PTT_STREAMINGRECOGNITION_COMPLETE | Streaming speech-to-text conversion was completed. | result; file_path; text;file_id | {{"file_id":"","file_path":","text":"","result":0}} |
ITMG_MAIN_EVNET_TYPE_PTT_STREAMINGRECOGNITION_IS_RUNNING | Streaming speech-to-text conversion is in progress. | result; file_path; text;file_id | {{"file_id":"","file_path":","text":"","result":0}} |
ITMG_MAIN_EVNET_TYPE_PTT_TEXT2SPEECH_COMPLETE | Text-to-speech conversion was completed. | result; text;file_id | {{"file_id":"","text":"","result":0}} |
ITMG_MAIN_EVNET_TYPE_PTT_TRANSLATE_TEXT_COMPLETE | Text translation was completed. | result; text;file_id | {{"file_id":"","text":"","result":0}} |
Was this page helpful?