Esempio n. 1
0
 public static int ShowSubtitle(List<Paragraph> paragraphs, VideoPlayerContainer videoPlayerContainer)
 {
     if (videoPlayerContainer.VideoPlayer != null)
     {
         double positionInMilliseconds = (videoPlayerContainer.CurrentPosition * TimeCode.BaseUnit) + 5;
         for (int i = 0; i < paragraphs.Count; i++)
         {
             var p = paragraphs[i];
             if (p.StartTime.TotalMilliseconds <= positionInMilliseconds &&
                 p.EndTime.TotalMilliseconds > positionInMilliseconds)
             {
                 string text = p.Text.Replace("|", Environment.NewLine);
                 bool isInfo = p == paragraphs[0] && (p.StartTime.TotalMilliseconds == 0 && p.Duration.TotalMilliseconds == 0 || p.StartTime.TotalMilliseconds == Pac.PacNullTime.TotalMilliseconds);
                 if (!isInfo)
                 {
                     if (videoPlayerContainer.LastParagraph != p)
                         videoPlayerContainer.SetSubtitleText(text, p);
                     else if (videoPlayerContainer.SubtitleText != text)
                         videoPlayerContainer.SetSubtitleText(text, p);
                     return i;
                 }
             }
         }
         if (!string.IsNullOrEmpty(videoPlayerContainer.SubtitleText))
             videoPlayerContainer.SetSubtitleText(string.Empty, null);
     }
     return -1;
 }
Esempio n. 2
0
 public static int GetSubtitleIndex(List<Paragraph> paragraphs, VideoPlayerContainer videoPlayerContainer)
 {
     if (videoPlayerContainer.VideoPlayer != null)
     {
         double positionInMilliseconds = (videoPlayerContainer.VideoPlayer.CurrentPosition * TimeCode.BaseUnit) + 5;
         for (int i = 0; i < paragraphs.Count; i++)
         {
             var p = paragraphs[i];
             if (p.StartTime.TotalMilliseconds <= positionInMilliseconds && p.EndTime.TotalMilliseconds > positionInMilliseconds)
             {
                 bool isInfo = p == paragraphs[0] && (p.StartTime.TotalMilliseconds == 0 && p.Duration.TotalMilliseconds == 0 || p.StartTime.TotalMilliseconds == Pac.PacNullTime.TotalMilliseconds);
                 if (!isInfo)
                     return i;
             }
         }
         if (!string.IsNullOrEmpty(videoPlayerContainer.SubtitleText))
             videoPlayerContainer.SetSubtitleText(string.Empty, null);
     }
     return -1;
 }
Esempio n. 3
0
        public static int ShowSubtitle(List<Paragraph> paragraphs, Subtitle original, VideoPlayerContainer videoPlayerContainer)
        {
            int index = 0;
            if (videoPlayerContainer.VideoPlayer != null)
            {
                double positionInMilliseconds = (videoPlayerContainer.VideoPlayer.CurrentPosition * 1000.0) + 15;
                for (int i = 0; i < paragraphs.Count; i++)
                {
                    var p = paragraphs[i];
                    if (p.StartTime.TotalMilliseconds <= positionInMilliseconds &&
                        p.EndTime.TotalMilliseconds > positionInMilliseconds)
                    {
                        var op = Utilities.GetOriginalParagraph(index, p, original.Paragraphs);

                        string text = p.Text.Replace("|", Environment.NewLine);
                        if (op != null)
                            text = text + Environment.NewLine + Environment.NewLine + op.Text.Replace("|", Environment.NewLine);

                        bool isInfo = p == paragraphs[0] && p.StartTime.TotalMilliseconds == 0 && positionInMilliseconds > 3000;
                        if (!isInfo)
                        {
                            if (videoPlayerContainer.LastParagraph != p)
                                videoPlayerContainer.SetSubtitleText(text, p);
                            else if (videoPlayerContainer.SubtitleText != text)
                                videoPlayerContainer.SetSubtitleText(text, p);
                            return i;
                        }
                    }
                }
            }
            if (!string.IsNullOrEmpty(videoPlayerContainer.SubtitleText))
                videoPlayerContainer.SetSubtitleText(string.Empty, null);
            return -1;
        }