public void Play()
        {
            if (masterSequence.director == null)
            {
                return;
            }

            if (!previewMode)
            {
                previewMode = true;
            }

            if (previewMode)
            {
                if (masterSequence.time > masterSequence.duration)
                {
                    masterSequence.time = 0;
                }
#if TIMELINE_FRAMEACCURATE
                if (TimelinePreferences.instance.playbackLockedToFrame)
                {
                    FrameRate frameRate = FrameRate.DoubleToFrameRate(masterSequence.asset.editorSettings.frameRate);
                    masterSequence.director.Play(frameRate);
                }
                else
                {
                    masterSequence.director.Play();
                }
#else
                masterSequence.director.Play();
#endif
                masterSequence.director.ProcessPendingGraphChanges();
                PlayableDirector.ResetFrameTiming();
                InvokePlayStateChangeCallback(true);
            }
        }