internal void RaiseRenderingSubtitlesEvent(SubtitleBlock block, TimeSpan clock)
        {
            var args = new RenderingSubtitlesEventArgs(
                block.Text, block.OriginalText, block.OriginalTextType, Container.MediaInfo.Streams[block.StreamIndex], block.StartTime, block.Duration, clock);

            RenderingSubtitles?.Invoke(this, args);
        }
Esempio n. 2
0
    //IEnumerator GetRequest(string url)
    //{
    //    using (UnityWebRequest req = UnityWebRequest.Get(url))
    //    {
    //        yield return req.SendWebRequest();
    //        if (req.isNetworkError || req.isHttpError)
    //        {
    //            Debug.Log($"{req.error}: {req.downloadHandler.text}");
    //        }
    //        else
    //        {
    //            subcontent = req.downloadHandler.text;
    //        }
    //    }
    //    subt = SubtitleBlock.ParseSubtitles(subcontent);
    //    StartCoroutine(DisplaySubtitles());
    //}
    void Start()
    {
        if (subTitleSource == null)
        {
            return;
        }

        subt = SubtitleBlock.ParseSubtitles(subTitleSource.text);
        StartCoroutine(DisplaySubtitles());
        StartCoroutine(playvideo());
    }
        internal bool RaiseRenderingSubtitlesEvent(SubtitleBlock block, TimeSpan clock)
        {
            var e = new RenderingSubtitlesEventArgs(
                block.Text,
                block.OriginalText,
                block.OriginalTextType,
                Container.MediaInfo.Streams[block.StreamIndex],
                block.StartTime,
                block.Duration,
                clock);

            RenderingSubtitles?.Invoke(this, e);
            return(e.Cancel);
        }
        internal bool RaiseRenderingSubtitlesEvent(SubtitleBlock block, TimeSpan clock)
        {
            if (RenderingSubtitles == null)
            {
                return(false);
            }

            var e = new RenderingSubtitlesEventArgs(
                block.Text,
                block.OriginalText,
                block.OriginalTextType,
                MediaCore.State,
                MediaCore.MediaInfo.Streams[block.StreamIndex],
                block.StartTime,
                block.Duration,
                clock);

            RenderingSubtitles?.Invoke(this, e);
            return(e.Cancel);
        }
    private void CreateSubtitleBlocks(WWW subtitlesFile, string path)
    {
        string[] blocks;

        if (string.IsNullOrEmpty(subtitlesFile.error))
        {
            blocks = SrtParser.GetSubtitleBlocks(subtitlesFile.text);

            foreach (string blockText in blocks)
            {
                double[] times = SrtParser.GetSubtitleTimes(blockText);
                string   text  = SrtParser.GetSubtitleText(blockText);

                SubtitleBlock block = new SubtitleBlock(text, times[0], times[1]);

                subtitleBlockList.Add(block);
            }
        }
        else
        {
            Debug.LogWarning("Subtitle not found at path: " + path);
            Debug.LogWarning(subtitlesFile.error);
        }
    }
Esempio n. 6
0
 private static void HandleSubtitleFrame(SubtitleBlock e)
 {
     PrintFrameInfo(e);
 }
    public IEnumerator Begin(TextAsset Subtitle)
    {
        var currentlyDisplayingText = Text;
        var fadedOutText            = Text2;

        currentlyDisplayingText.text = string.Empty;
        fadedOutText.text            = string.Empty;

        currentlyDisplayingText.gameObject.SetActive(true);
        fadedOutText.gameObject.SetActive(true);

        yield return(FadeTextOut(currentlyDisplayingText));

        yield return(FadeTextOut(fadedOutText));

        var parser = new SRTParser(Subtitle);

        var           startTime       = Time.time;
        SubtitleBlock currentSubtitle = null;

        while (true)
        {
            var elapsed  = Time.time - startTime;
            var subtitle = parser.GetForTime(elapsed);
            if (subtitle != null)
            {
                if (!subtitle.Equals(currentSubtitle))
                {
                    currentSubtitle = subtitle;

                    // Swap references around
                    var temp = currentlyDisplayingText;
                    currentlyDisplayingText = fadedOutText;
                    fadedOutText            = temp;

                    // Switch subtitle text
                    currentlyDisplayingText.text = currentSubtitle.Text;

                    // And fade out the old one. Yield on this one to wait for the fade to finish before doing anything else.
                    StartCoroutine(FadeTextOut(fadedOutText));

                    // Yield a bit for the fade out to get part-way
                    yield return(new WaitForSeconds(FadeTime / 3));

                    // Fade in the new current
                    yield return(FadeTextIn(currentlyDisplayingText));
                }
                yield return(null);
            }
            else
            {
                Debug.Log("Subtitles ended");
                StartCoroutine(FadeTextOut(currentlyDisplayingText));
                yield return(FadeTextOut(fadedOutText));

                currentlyDisplayingText.gameObject.SetActive(false);
                fadedOutText.gameObject.SetActive(false);
                yield break;
            }
        }
    }