gme.dart GME 业务实现接口gmeType.dart GME 类型定义文件gmeError.dart GME 错误类型定义文件
接口 | 接口含义 |
InitSDK | 初始化 GME |
Poll | 触发事件回调 |
Uninit | 反初始化 GME |
import 'package:gme/gme.dart';import 'package:gme/gmeType.dart';
Future<int> InitSDK(String appID, String openID)
返回值 | 处理 |
GmeError.AV_OK= 0 | 初始化 SDK 成功 |
AV_ERR_SDK_NOT_FULL_UPDATE=7015 | 检查 SDK 文件是否完整,建议删除后重新导入 SDK |
int res = await ITMGContext.GetInstance().InitSDK(_editAppID.text,_editOpenID.text);//通过返回值判断是否初始化成功if (ret != GmeError.AV_OK){print("SDK初始化失败:");return;}
Future<void> Poll()
Future<void> pollTimer() async {_pollTimer = Timer.periodic(Duration(milliseconds: 100), (Timer timer) {ITMGContext.GetInstance().Poll();});}
Future<int> Uninit()
接口 | 接口含义 |
GenAuthBuffer | 获取鉴权信息。 |
SetMaxMessageLength | 限制最大语音信息时长。 |
Future<Uint8List> GenAuthBuffer(String appID, String roomID, String openID, String key)
参数 | 类型 | 含义 |
appId | string | 来自腾讯云控制台的 AppId 号码。 |
roomId | string | 填 null 或者空字符串。 |
openId | string | 用户标识。与 Init 时候的 OpenId 相同。 |
key | string |
Future<int> ApplyPTTAuthbuffer(Uint8List authBuffer)
Uint8List authBuffer = await ITMGContext.GetInstance().GenAuthBuffer(_editAppID.text, _editRoomID.text, _editOpenID.text, _editKey.text);m_context.ApplyPTTAuthbuffer(authBuffer);
Future<int> SetMaxMessageLength(int msTime)
参数 | 类型 | 含义 |
msTime | number | 语音时长,单位 ms,区间为 1000 < msTime < = 58000 |
ITMGContext.GetInstance().GetPTT().SetMaxMessageLength(fileLen);
接口 | 接口含义 |
StartRecordingWithStreamingRecognition | 启动流式录音 |
StopRecording | 停止录音 |
Future<int> StartRecordingWithStreamingRecognition(String filePath, String speechLanguage, String translateLanguage)
string filePath = "xx/xxx/xxx.silk"int res = await ITMGContext.GetInstance().GetPTT().StartRecordingWithStreamingRecognition(filePath, strCurLanguage, strCurLanguage);if (ret == 0) {this.currentStatus = "开始流式录音";} else {this.currentStatus = "开始流式录音失败";}
消息名称 | 含义 |
result | 用于判断流式语音识别是否成功的返回码。 |
text | 语音转文字识别的文本。 |
file_path | 录音存放的本地地址。 |
file_id | 录音在后台的 url 地址,录音在服务器存放90天。 |
ITMG_MAIN_EVNET_TYPE_PTT_STREAMINGRECOGNITION_IS_RUNNING
消息时,file_id 为空。错误码 | 含义 | 处理方式 |
32775 | 流式语音转文本失败,但是录音成功 | 调用 UploadRecordedFile 接口上传录音,再调用 SpeechToText 接口进行语音转文字操作。 |
32777 | 流式语音转文本失败,但是录音成功,上传成功 | 返回的信息中有上传成功的后台 url 地址,调用 SpeechToText 接口进行语音转文字操作。 |
32786 | 流式语音转文本失败 | 在流式录制状态当中,请等待流式录制接口执行结果返回。 |
32787 | 转文本成功,文本翻译服务未开通 | 需要在控制台开通文本翻译服务。 |
32788 | 转文本成功,文本翻译语言参数不支持 | 重新检查传入参数。 |
void handleEventMsg(int eventType, String data){switch (eventType) {case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVNET_TYPE_PTT_STREAMINGRECOGNITION_COMPLETE:{HandleSTREAM2TEXTComplete(data,true);break;}...case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVNET_TYPE_PTT_STREAMINGRECOGNITION_IS_RUNNING:{HandleSTREAM2TEXTComplete(data, false);break;}}}ITMGContext.GetInstance().SetEvent(handleEventMsg);
接口 | 接口含义 |
StartRecording | 启动录音。 |
PauseRecording | 暂停录音。 |
ResumeRecording | 恢复录音。 |
StopRecording | 停止录音。 |
CancelRecording | 取消录音。 |
Future<int> StartRecording(String filePath)
参数 | 类型 | 含义 |
filePath | string | 存放的语音路径。 |
string filepath = "xxxx/xxx.silk";int res = await ITMGContext.GetInstance().GetPTT().StartRecording(filepath);
Future<int> StopRecording()
ITMGContext.GetInstance().GetPTT().StopRecording();
参数 | 类型 | 含义 |
code | string | 当 code 为 0 时,录制完成。 |
filepath | string | 录制的存放地址,必须是可以访问到的路径,不可将 fileid 作为路径。 |
错误码值 | 原因 | 建议方案 |
4097 | 参数为空 | 检查代码中接口参数是否正确。 |
4098 | 初始化错误 | 检查设备是否被占用,或者权限是否正常,是否初始化正常。 |
4099 | 正在录制中 | 确保在正确的时机使用 SDK 录制功能。 |
4100 | 没有采集到音频数据 | 检查麦克风设备是否正常。 |
4101 | 录音时,录制文件访问错误 | 确保文件存在,文件路径的合法性。 |
4102 | 麦克风未授权错误 | 使用 SDK 需要麦克风权限,添加权限请参考对应引擎或平台的 SDK 工程配置文档。 |
4103 | 录音时间太短错误 | 首先,限制录音时长的单位为毫秒,检查参数是否正确;其次,录音时长要1000毫秒以上才能成功录制。 |
4104 | 没有启动录音操作 | 检查是否已经调用启动录音接口。 |
void handleEventMsg(int eventType, String data){switch (eventType) {case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM:{//进行处理break;}...case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVNET_TYPE_PTT_RECORD_COMPLETE:{//进行处理break;}}}ITMGContext.GetInstance().SetEvent(handleEventMsg);
Future<int> PauseRecording()
ITMGContext.GetInstance().GetPTT().PauseRecording();
Future<int> ResumeRecording()
ITMGContext.GetInstance().GetPTT().ResumeRecording();
Future<int> CancelRecording()
ITMGContext.GetInstance().GetPTT().CancelRecording();
接口 | 接口含义 |
UploadRecordedFile | 上传语音文件。 |
DownloadRecordedFile | 下载语音文件。 |
PlayRecordedFile | 播放语音。 |
StopPlayFile | 停止播放语音。 |
GetFileSize | 语音文件的大小。 |
GetVoiceFileDuration | 语音文件的时长。 |
Future<int> UploadRecordedFile(String filePath)
参数 | 类型 | 含义 |
filePath | String | 上传的语音路径,此路径为本地路径。 |
ITMGContext.GetInstance().GetPTT().UploadRecordedFile(_filePath);
参数 | 类型 | 含义 |
result | number | 当 code 为0时,录制完成。 |
filepath | string | 录制的存放地址。 |
fileid | string | 文件的 url 路径。 |
错误码值 | 原因 | 建议方案 |
8193 | 上传文件时,文件访问错误 | 确保文件存在,文件路径的合法性。 |
8194 | 签名校验失败错误 | 检查鉴权密钥是否正确,检查是否有初始化离线语音。 |
8195 | 网络错误 | 检查设备网络是否可以正常访问外网环境。 |
8196 | 获取上传参数过程中网络失败 | 检查鉴权是否正确,检查设备网络是否可以正常访问外网环境。 |
8197 | 获取上传参数过程中回包数据为空 | 检查鉴权是否正确,检查设备网络是否可以正常访问外网环境。 |
8198 | 获取上传参数过程中回包解包失败 | 检查鉴权是否正确,检查设备网络是否可以正常访问外网环境。 |
8200 | 没有设置 appinfo | 检查 apply 接口是否有调用,或者入参是否为空。 |
void handleEventMsg(int eventType, String data){switch (eventType) {...case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVNET_TYPE_PTT_UPLOAD_COMPLETE:{//进行处理break;}}}ITMGContext.GetInstance().SetEvent(handleEventMsg);
Future<int> DownloadRecordedFile(String fileId, String filePath)
参数 | 类型 | 含义 |
fileId | string | 文件的 url 路径。 |
filePath | string | 文件的本地保存路径,必须是可以访问到的路径,不可将 fileid 作为路径。 |
ITMGContext.GetInstance().GetPTT().DownloadRecordedFile(_fileId, _filePath);
参数 | 类型 | 含义 |
result | number | 当 code 为0时,下载完成。 |
filepath | string | 录制的存放地址。 |
fileid | string | 文件的 url 路径,录音在服务器存放 90 天。 |
错误码值 | 原因 | 建议方案 |
12289 | 下载文件时,文件访问错误 | 检查文件路径是否合法。 |
12290 | 签名校验失败 | 检查鉴权密钥是否正确,检查是否有初始化离线语音。 |
12291 | 网络存储系统异常 | 服务器获取语音文件失败,检查接口参数 fileid 是否正确,检查网络是否正常,检查 COS 文件存不存在。 |
12292 | 服务器文件系统错误 | 检查设备网络是否可以正常访问外网环境,检查服务器上是否有此文件。 |
12293 | 获取下载参数过程中,HTTP 网络失败 | 检查设备网络是否可以正常访问外网环境。 |
12294 | 获取下载参数过程中,回包数据为空 | 检查设备网络是否可以正常访问外网环境。 |
12295 | 获取下载参数过程中,回包解包失败 | 检查设备网络是否可以正常访问外网环境。 |
12297 | 没有设置 appinfo | 检查鉴权密钥是否正确,检查是否有初始化离线语音。 |
void handleEventMsg(int eventType, String data){switch (eventType) {...case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM:{//进行处理break;}}}ITMGContext.GetInstance().SetEvent(handleEventMsg);
Future<int> PlayRecordedFile(String filePath, int voiceType)
参数 | 类型 | 含义 |
filePath | string | 本地语音文件的路径。 |
voicetype | ITMG_VOICE_TYPE |
错误码值 | 原因 | 建议方案 |
20485 | 播放未开始 | 确保文件存在,文件路径的合法性。 |
int res = await ITMGContext.GetInstance().GetPTT().PlayRecordedFile(_filePath, _nVoiceType);
参数 | 类型 | 含义 |
code | number | 当 code 为0时,播放完成。 |
filepath | string | 录制的存放地址。 |
错误码值 | 原因 | 建议方案 |
20481 | 初始化错误 | 检查设备是否被占用,或者权限是否正常,是否初始化正常。 |
20482 | 正在播放中,试图打断并播放下一个失败了(正常是可以打断的) | 检查代码逻辑是否正确。 |
20483 | 参数为空 | 检查代码中接口参数是否正确。 |
20484 | 内部错误 | 初始化播放器错误,解码失败等问题产生此错误码,需要结合日志定位问题。 |
void handleEventMsg(int eventType, String data){switch (eventType) {case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVNET_TYPE_PTT_PLAY_COMPLETE:{//进行处理break;}}}
Future<int> StopPlayFile()
ITMGContext.GetInstance().GetPTT().StopPlayFile();
Future<int> GetFileSize(String filePath)
参数 | 类型 | 含义 |
filePath | string | 语音文件的路径,此路径为本地路径。 |
final int res = await ITMGContext.GetInstance().GetPTT().GetFileSize(_filePath);
Future<int> GetVoiceFileDuration(String filePath)
参数 | 类型 | 含义 |
filePath | string | 语音文件的路径,此路径为本地路径。 |
final int res = await ITMGContext.GetInstance().GetPTT().GetVoiceFileDuration(_filePath);
Future<int> SpeechToText(String fileId, String speechLanguage, String translateLanguage)
ITMGContext.GetInstance().GetPTT().SpeechToText(_fileId, "cmn-Hans-CN", "cmn-Hans-CN");
参数 | 类型 | 含义 |
result | number | 当 code 为0时,录制完成。 |
fileid | string | 语音文件 url,录音在服务器存放90天。 |
text | string | 转换的文本结果。 |
错误码值 | 原因 | 建议方案 |
32769 | 内部错误 | 分析日志,获取后台返回给客户端的真正错误码,并联系后台同事协助解决。 |
32770 | 网络失败 | 检查设备网络是否可以正常访问外网环境。 |
32772 | 回包解包失败 | 分析日志,获取后台返回给客户端的真正错误码,并联系后台同事协助解决。 |
32774 | 没有设置 appinfo | 检查鉴权密钥是否正确,检查是否有初始化离线语音。 |
32776 | authbuffer 校验失败 | 检查 authbuffer 是否正确。 |
32784 | 语音转文本参数错误 | 检查代码中接口参数 fileid 是否为空。 |
32785 | 语音转文本翻译返回错误 | 离线语音后台错误,请分析日志,获取后台返回给客户端的真正错误码,并联系后台同事协助解决。 |
32787 | 转文本成功,文本翻译服务未开通 | 需要在控制台开通文本翻译服务。 |
32788 | 转文本成功,文本翻译语言参数不支持 | 重新检查传入参数。 |
void handleEventMsg(int eventType, String data){switch (eventType) {case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ENTER_ROOM:{//进行处理break;}...case ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVNET_TYPE_PTT_SPEECH2TEXT_COMPLETE:{//进行处理break;}}}
接口 | 接口含义 |
GetMicLevel | 获取实时麦克风音量。 |
SetMicVolume | 设置录制音量。 |
GetMicVolume | 获取录制音量。 |
GetSpeakerLevel | 获取实时扬声器音量。 |
SetSpeakerVolume | 设置播放音量。 |
GetSpeakerVolume | 获取播放音量。 |
Future<int> GetMicLevel()
final int res = await ITMGContext.GetInstance().GetPTT().GetMicLevel();
Future<int> SetMicVolume(int volume)
参数 | 类型 | 含义 |
vol | number | 取值范围为 0-200,数值为0的时候表示静音,当数值为100的时候表示音量不增不减,默认数值为100。 |
final int res = await ITMGContext.GetInstance().GetPTT().SetMicVolume(100);
Future<int> GetMicVolume()
final int res = await ITMGContext.GetInstance().GetPTT().GetMicVolume();
Future<int> GetSpeakerLevel()
final int res = await ITMGContext.GetInstance().GetPTT().GetSpeakerLevel();
Future<int> SetSpeakerVolume(int volume)
final int res = await ITMGContext.GetInstance().GetPTT().SetSpeakerVolume(100);
Future<int> GetSpeakerVolume()
final int res = await ITMGContext.GetInstance().GetPTT().GetSpeakerVolume();
Future<String> GetSDKVersion()
_sdkVersions = await ITMGContext.GetInstance().GetSDKVersion();
Future<int> SetLogLevel(int levelWrite, int levelPrint)
参数 | 类型 | 含义 |
level | ITMG_LOG_LEVEL | 设置写入日志的等级,TMG_LOG_LEVEL_NONE 表示不写入,默认为 TMG_LOG_LEVEL_INFO。 |
level | 含义 |
TMG_LOG_LEVEL_NONE | 不打印日志。 |
TMG_LOG_LEVEL_ERROR | 打印错误日志(默认)。 |
TMG_LOG_LEVEL_INFO | 打印提示日志。 |
TMG_LOG_LEVEL_DEBUG | 打印开发调试日志。 |
TMG_LOG_LEVEL_VERBOSE | 打印高频日志。 |
ITMGContext.GetInstance().SetLogLevel(ITMG_LOG_LEVEL.TMG_LOG_LEVEL_ERROR,ITMG_LOG_LEVEL.TMG_LOG_LEVEL_ERROR);
Future<int> SetLogPath(String logDir)
参数 | 类型 | 含义 |
logPath | string | 路径。 |
String logDir = ""//自行设置路径ITMGContext.GetInstance().SetLogPath(curPath);
本页内容是否解决了您的问题?