示例#1
0
    void enter(TOUCH_STATE state)
    {
        VoiceMgr vm = VoiceMgr.GetInstance();

        Debug.Log("enter " + state);

        switch (state)
        {
        case TOUCH_STATE.START:
            vm.prepare("record.amr");
            lastTouchTime = Time.time;

            voice.SetActive(true);
            mic.SetActive(true);
            volume.SetActive(true);
            cancel.SetActive(false);
            warning.SetActive(false);

            time.transform.localScale = new Vector2(0, 1);
            notice.text = "滑动手指,取消发送";
            break;

        case TOUCH_STATE.MOVE_OUT:
            if (lastTouchTime > 0)
            {
                mic.SetActive(false);
                volume.SetActive(false);
                cancel.SetActive(true);
                warning.SetActive(false);

                notice.text = "松开手指,取消发送";
            }

            break;

        case TOUCH_STATE.MOVE_IN:
            if (lastTouchTime > 0)
            {
                mic.SetActive(true);
                volume.SetActive(true);
                cancel.SetActive(false);
                warning.SetActive(false);

                notice.text = "滑动手指,取消发送";
            }

            break;

        case TOUCH_STATE.CANCEL:
            if (lastTouchTime > 0)
            {
                vm.cancel();
                lastTouchTime = 0;
                voice.SetActive(false);
            }

            break;

        case TOUCH_STATE.END:
            if (lastTouchTime > 0)
            {
                if (Time.time - lastTouchTime < 1.0f)
                {
                    vm.cancel();

                    voice.SetActive(true);
                    mic.SetActive(false);
                    volume.SetActive(false);
                    cancel.SetActive(false);
                    warning.SetActive(true);
                    time.transform.localScale = new Vector2(0, 1);
                    notice.text = "录制时间太短";

                    PUtils.setTimeout(() => {
                        voice.SetActive(false);
                    }, 1.0f);
                }
                else
                {
                    onVoiceOK();
                }

                lastTouchTime = 0;
            }

            break;

        default:
            break;
        }
    }