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); }
//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); } }
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; } } }