using GME;
int ret = ITMGContext.GetInstance().Init(sdkAppId, openID);
//class ITMGContextpublic abstract int Init(string sdkAppID, string openID);
int ret = ITMGContext.GetInstance().Init(sdkAppId, openID);//通过返回值判断是否初始化成功if (ret != QAVError.OK){Debug.Log("SDK初始化失败:"+ret);return;}
public void Update(){ITMGContext.GetInstance().Poll();}
//委托函数:public delegate void QAVEnterRoomComplete(int result, string error_info);//事件函数:public abstract event QAVEnterRoomComplete OnEnterRoomCompleteEvent;
委托函数:public delegate void QAVExitRoomComplete();事件函数:public abstract event QAVExitRoomComplete OnExitRoomCompleteEvent;
QAVAuthBuffer GenAuthBuffer(int appId, string roomId, string openId, string key)
参数 | 类型 | 含义 |
appId | int | 来自腾讯云控制台的 AppId 号码。 |
roomId | string | 房间号,最大支持127字符(离线语音房间号参数必须填 null)。 |
openId | string | 用户标识。与 Init 时候的 openId 相同。 |
key | string |
public static byte[] GetAuthBuffer(string AppID, string RoomID,string OpenId, string AuthKey){return QAVAuthBuffer.GenAuthBuffer(int.Parse(AppID), RoomID, OpenId, AuthKey);}
ITMGContext EnterRoom(string roomId, int roomType, byte[] authBuffer)
参数 | 类型 | 含义 |
roomId | String | 房间号,最大支持127字符 |
roomType | ITMGRoomType | 只需填 ITMGRoomType.ITMG_ROOM_TYPE_FLUENCY |
authBuffer | byte[] | 鉴权码 |
ITMGContext.GetInstance().EnterRoom(strRoomId, ITMGRoomType.ITMG_ROOM_TYPE_FLUENCY, byteAuthbuffer);
//对事件进行监听:ITMGContext.GetInstance().OnEnterRoomCompleteEvent += new QAVEnterRoomComplete(OnEnterRoomComplete);//监听处理:void OnEnterRoomComplete(int err, string errInfo){if (err != 0) {ShowLoginPanel("错误码:" + err + " 错误信息:" + errInfo);return;}else{//进房成功}}
错误码值 | 原因及建议方案 |
7006 | 鉴权失败,原因如下: AppID 不存在或者错误 authbuff 鉴权错误 鉴权过期 openId 不符合规范 |
7007 | 已经在其它房间 |
1001 | 已经在进房过程中,然后又重复了此操作。建议在进房回调返回之前不要再调用进房接口 |
1003 | 已经进房了在房间中,又调用一次进房接口 |
1101 | 确保已经初始化 SDK,确保 openId 是否符合规则,或者确保在同一线程调用接口,以及确保 Poll 接口正常调用 |
//对事件进行监听:ITMGContext.GetInstance().OnEnterRoomCompleteEvent += new QAVEnterRoomComplete(OnEnterRoomComplete);//监听处理:void OnEnterRoomComplete(int err, string errInfo){if (err != 0) {ShowLoginPanel("错误码:" + err + " 错误信息:" + errInfo);return;}else{//进房成功//打开麦克风ITMGContext.GetInstance().GetAudioCtrl().EnableMic(true);}}
//对事件进行监听:ITMGContext.GetInstance().OnEnterRoomCompleteEvent += new QAVEnterRoomComplete(OnEnterRoomComplete);//监听处理:void OnEnterRoomComplete(int err, string errInfo){if (err != 0) {ShowLoginPanel("错误码:" + err + " 错误信息:" + errInfo);return;}else{//进房成功//打开扬声器ITMGContext.GetInstance().GetAudioCtrl().EnableSpeaker(true);}}
ITMGContext.GetInstance().ExitRoom();
对事件进行监听:ITMGContext.GetInstance().OnExitRoomCompleteEvent += new QAVExitRoomComplete(OnExitRoomComplete);监听处理:void OnExitRoomComplete(){//退出房间后的处理}
ITMGPTT int ApplyPTTAuthbuffer (byte[] authBuffer)
参数 | 类型 | 含义 |
authBuffer | String | 鉴权 |
UserConfig.SetAppID(transform.Find ("appId").GetComponent<InputField> ().text);UserConfig.SetUserID(transform.Find ("userId").GetComponent<InputField> ().text);UserConfig.SetAuthKey(transform.Find("authKey").GetComponent<InputField>().text);byte[] authBuffer = UserConfig.GetAuthBuffer(UserConfig.GetAppID(), UserConfig.GetUserID(), null,UserConfig.GetAuthKey());ITMGContext.GetInstance ().GetPttCtrl ().ApplyPTTAuthbuffer(authBuffer);
ITMGPTT int StartRecordingWithStreamingRecognition(string filePath)
参数 | 类型 | 含义 |
filePath | String | 存放的语音路径 |
string recordPath = Application.persistentDataPath + string.Format("/{0}.silk", sUid++);int ret = ITMGContext.GetInstance().GetPttCtrl().StartRecordingWithStreamingRecognition(recordPath);
OnStreamingSpeechComplete
是在停止录制并完成识别后才返回文字,相当于一段话说完才会返回识别的文字。OnStreamingSpeechisRunning
是在录音过程中就会实时返回识别到的文字,相当于边说话边返回识别到的文字。消息名称 | 含义 |
result | 用于判断流式语音识别是否成功的返回码 |
text | 语音转文字识别的文本 |
file_path | 录音存放的本地地址 |
file_id | 录音在后台的 url 地址,录音在服务器存放90天 |
//对事件进行监听:ITMGContext.GetInstance().GetPttCtrl().OnStreamingSpeechComplete +=new QAVStreamingRecognitionCallback (OnStreamingSpeechComplete);ITMGContext.GetInstance().GetPttCtrl().OnStreamingSpeechisRunning += new QAVStreamingRecognitionCallback (OnStreamingRecisRunning);//监听处理:void OnStreamingSpeechComplete(int code, string fileid, string filepath, string result){//启动流式语音识别的回调}void OnStreamingRecisRunning(int code, string fileid, string filePath, string result){if (code == 0){setBtnText(mStreamBtn, "流式");InputField field = transform.Find("recordFilePath").GetComponent<InputField>();field.text = filePath;field = transform.Find("downloadUrl").GetComponent<InputField>();field.text = "Stream is Running";field = transform.Find("convertTextResult").GetComponent<InputField>();field.text = result;showWarningText("录制中");}}
错误码 | 含义 | 处理方式 |
32775 | 流式语音转文本失败,但是录音成功 | 调用 UploadRecordedFile 接口上传录音,再调用 SpeechToText 接口进行语音转文字操作 |
32777 | 流式语音转文本失败,但是录音成功,上传成功 | 返回的信息中有上传成功的后台 url 地址,调用 SpeechToText 接口进行语音转文字操作 |
32786 | 流式语音转文本失败 | 在流式录制状态当中,请等待流式录制接口执行结果返回 |
ITMGPTT int StopRecording()
ITMGContext.GetInstance().GetPttCtrl().StopRecording();
本页内容是否解决了您的问题?