Exemplo n.º 1
0
    /// <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;
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 事件处理回调
    /// </summary>
    /// <param name="eventstr">事件类型</param>
    private void ProcessEvent(string eventstr)
    {
        SpeechEventType evt = GetEventType(eventstr);

        ProcessEvent(evt);
    }