private void Reset()
    {
        ResetLock();
        //_videoAddress = Application.persistentDataPath;

        _photoTexs          = new List <Texture2D>();
        _videoFactoryStatus = VideoFactoryStatus.Disabled;
        _contentStatus      = VideoFactoryContentStatus.Prepared;
    }
    public void OnAnimationEnd()
    {
        if (_isRecordMusic)
        {
            _audioSource.Stop();
        }

        _videoFactoryStatus = VideoFactoryStatus.Finish;
    }
Beispiel #3
0
    /// <summary>
    ///     激活视频工厂
    /// </summary>
    public void DoActive(Action <string> completeCallBack, bool isMock)
    {
        //Reset();

        ResetForInit();
        _isMock = isMock;

        _videoGenerateCompletedCallback = completeCallBack;


        _videoPlayer1   = _videoPlayerResAgent.GetVideoPlayer(VideoPlayResAgent.VideoPlayerType.videoPlayerRecordNoLogoFirst);
        _videoPlayer2   = _videoPlayerResAgent.GetVideoPlayer(VideoPlayResAgent.VideoPlayerType.videoPlayerSecond);
        _videoPlayer3   = _videoPlayerResAgent.GetVideoPlayer(VideoPlayResAgent.VideoPlayerType.videoPlayerThird);
        _image1.texture = _videoPlayer1.texture;
        _image2.texture = _videoPlayer2.texture;
        _image3.texture = _videoPlayer3.texture;


        _videoFactoryStatus = VideoFactoryStatus.Prepare;
    }
    /// <summary>
    ///     激活视频工厂
    /// </summary>
    public void DoActive(Action <string> completeCallBack, Action onRecordStart)
    {
        //Reset();

        ResetForInit();

        _isRecordMusic = true;


        _videoGenerateCompletedCallback = completeCallBack;
        _onRecordStart = onRecordStart;

        _videoFactoryStatus = VideoFactoryStatus.Prepare;


        _videoPlayer1   = _videoPlayerResAgent.GetVideoPlayer(VideoPlayResAgent.VideoPlayerType.videoPlayerRecordFirst);
        _videoPlayer2   = _videoPlayerResAgent.GetVideoPlayer(VideoPlayResAgent.VideoPlayerType.videoPlayerSecond);
        _videoPlayer3   = _videoPlayerResAgent.GetVideoPlayer(VideoPlayResAgent.VideoPlayerType.videoPlayerThird);
        _image1.texture = _videoPlayer1.texture;
        _image2.texture = _videoPlayer2.texture;
        _image3.texture = _videoPlayer3.texture;
    }
    // Start is called before the first frame update
    //void Start()
    //{
    //    Reset();

    //    if (!_videoIsPrepared)
    //    {
    //        //LoadVideo();
    //    }
    //    else
    //    {
    //        //CompletePrepare();
    //    }
    //}

    // Update is called once per frame
    void Update()
    {
        //if (Input.GetKeyDown(KeyCode.M)) {
        //    StopRecord();
        //}


        if (Input.GetKeyDown(KeyCode.S))
        {
            // 开始动画
            //_animator.Play("Play");
            Debug.Log("kaishi");

            DoActive(DoAfterCompleted, () => { });
        }

        if (_videoFactoryStatus == VideoFactoryStatus.Prepare)
        {
            if (!doPreparedLock)
            {
                doPreparedLock = true;

                if (!gameObject.activeSelf)
                {
                    gameObject.SetActive(true);
                }

                Sprite spriteA, spriteB, spriteC;
                if (_isMock)
                {
                    spriteA = Resources.Load <Sprite>("1");

                    Debug.Log("spriteA width : " + spriteA.rect.width);

                    spriteB = Resources.Load <Sprite>("2");
                    spriteC = Resources.Load <Sprite>("3");
                }
                else
                {
                    spriteA = Sprite.Create(_photoTexs[0], new Rect(0, 0, _photoTexs[0].width, _photoTexs[0].height), Vector2.zero);
                    spriteB = Sprite.Create(_photoTexs[1], new Rect(0, 0, _photoTexs[1].width, _photoTexs[1].height), Vector2.zero);
                    spriteC = Sprite.Create(_photoTexs[2], new Rect(0, 0, _photoTexs[2].width, _photoTexs[2].height), Vector2.zero);
                }



                _scenario2left.sprite   = spriteA;
                _scenario2middle.sprite = spriteA;
                _scenario2right.sprite  = spriteA;

                _scenario3A.sprite = spriteA;
                _scenario3B.sprite = spriteB;
                _scenario3C.sprite = spriteC;

                _scenario4B.sprite = spriteB;
                _scenario4C.sprite = spriteC;


                _videoFactoryStatus = VideoFactoryStatus.Running;
            }
        }



        if (_videoFactoryStatus == VideoFactoryStatus.Active)
        {
            if (!doActiveLock)
            {
                doActiveLock = true;

                _videoFactoryStatus = VideoFactoryStatus.Running;
            }
        }



        if (_videoFactoryStatus == VideoFactoryStatus.Running)
        {
            if (!doRunLock)
            {
                doRunLock = true;
                Debug.Log("Run!");


                if (_record && (!_isRecorded))
                {
                    //  开始录屏
                    StartRecord();
                }

                //  开始动画
                //_animator.Update(0f);
                _animator.Play("Play");
                _onRecordStart.Invoke();

                if (_isRecordMusic)
                {
                    _audioSource.Play();
                }
            }
        }

        if (_videoFactoryStatus == VideoFactoryStatus.Finish)
        {
            if (!doFinishLock)
            {
                doFinishLock = true;

                if (_record && !_isRecorded)
                {
                    //  结束录屏

                    StopRecord();

                    _isRecorded = true;

                    //_videoGenerateCompletedCallback.Invoke(_videoAddress);
                }


                Reset();
            }
        }
    }
Beispiel #6
0
    public void OnAnimationEnd()
    {
        //Debug.Log("Stop OnAnimationEnd");

        _videoFactoryStatus = VideoFactoryStatus.Finish;
    }