using GME;
int ret = ITMGContext.GetInstance().Init(sdkAppId, openID);
//class ITMGContextpublic abstract int Init(string sdkAppID, string openID);
매개변수 | 유형 | 설명 |
sdkAppId | string | |
openID | string | openID는 Int64 유형만 가능하며 문자열로 변환되어 전달됩니다. 해당 규칙을 사용자 정의할 수 있으며 App에서 고유해야 합니다. Openid를 문자열로 전달하려면 Submit Ticket하여 신청하십시오. |
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;
위임 함수:ublic delegate void QAVExitRoomComplete();이벤트 트리거 함수:public abstract event QAVExitRoomComplete OnExitRoomCompleteEvent;
QAVAuthBuffer GenAuthBuffer(int appId, string roomId, string openId, string key)
매개변수 | 유형 | 설명 |
appId | int | Tencent Cloud 콘솔의 AppId. |
roomId | string | 방 ID, 최대 127자 지원(음성 메시지의 경우 null 입력). |
openId | string | 사용자 ID. 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 | 방 ID, 최대 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 | 사용자는 이미 방에 들어가는 과정에 있었지만 이 작업을 반복했습니다. 방 입장 콜백이 반환될 때까지 방 입장 API를 호출하지 않는 것이 좋습니다. |
1003 | 사용자가 이미 방에 있었고 API를 입력하는 방을 다시 호출함 |
1101 | SDK가 초기화되었는지, openId가 규칙을 준수하는지, API가 동일한 스레드에서 호출되는지, Poll API가 정상적으로 호출되는지 확인 |
//이벤트 수신: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 | 90일 동안 보관되는 녹음 파일의 백엔드 url 주소 |
//이벤트 수신: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 API를 호출하여 녹음 파일을 업로드한 다음 SpeechToText API를 호출하여 음성을 텍스트로 변환 |
32777 | 스트리밍 음성을 텍스트로 변환하는 데 실패했지만 녹음 및 업로드는 성공함 | 반환된 메시지에는 업로드 성공 후 백엔드 url이 포함되어 있으며, SpeechToText API를 호출하여 음성을 텍스트로 변환 |
32786 | 스트리밍 음성-텍스트 변환 실패 | 스트리밍 녹화 중 스트리밍 녹화 API의 실행 결과가 반환될 때까지 기다리십시오 |
ITMGPTT int StopRecording()
ITMGContext.GetInstance().GetPttCtrl().StopRecording();
문제 해결에 도움이 되었나요?