/// <summary> /// 事件处理回调 /// </summary> /// <param name="evt">事件类型</param> private void ProcessEvent(SpeechEventType evt) { switch (evt) { case SpeechEventType.SET_CANCLE: if (m_Status != SpeechStatus.SS_DEFAULT) { m_Status = SpeechStatus.SS_CANCELING; OnTaskCancle(); } break; case SpeechEventType.SET_SPEECH_BEGIN: if (m_Status == SpeechStatus.SS_STARTED || m_Status == SpeechStatus.SS_READY) { m_Status = SpeechStatus.SS_LISTENING; OnRecordBegin(); } break; case SpeechEventType.SET_SPEECH_END: if (m_Status == SpeechStatus.SS_READY || m_Status == SpeechStatus.SS_LISTENING || m_Status == SpeechStatus.SS_STARTED) { m_Status = SpeechStatus.SS_RECOGNIZING; OnRecordEnd(); } break; case SpeechEventType.SET_SPEECH_READY: if (m_Status == SpeechStatus.SS_STARTED) { m_Status = SpeechStatus.SS_READY; OnRecordReady(); } break; case SpeechEventType.SET_TASK_START: if (m_Status == SpeechStatus.SS_DEFAULT) { m_Status = SpeechStatus.SS_STARTED; OnTaskStart(); } break; case SpeechEventType.SET_TASK_OVER: if (m_Status != SpeechStatus.SS_DEFAULT) { m_Status = SpeechStatus.SS_DEFAULT; #if UNITY_ANDROID && !UNITY_EDITOR CancelInvoke("StatusRecover"); #endif OnTaskOver(); } break; case SpeechEventType.SET_AUDIO_PLAYOVER: if (m_Status != SpeechStatus.SS_DEFAULT) { m_Status = SpeechStatus.SS_DEFAULT; #if UNITY_ANDROID && !UNITY_EDITOR CancelInvoke("ForcePlayOver"); #endif OnAudioPlayOver(); } break; case SpeechEventType.SET_AUDIO_DECODEERROR: OnAudioDecodeError(); m_Status = SpeechStatus.SS_DEFAULT; break; default: break; } }
/// <summary> /// 事件处理回调 /// </summary> /// <param name="eventstr">事件类型</param> private void ProcessEvent(string eventstr) { SpeechEventType evt = GetEventType(eventstr); ProcessEvent(evt); }