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; }
/// <summary> /// Initializes a new instance of the <see cref="VideoPlayerUndocked"/> class. /// </summary> /// <param name="main"> /// The main. /// </param> /// <param name="videoPlayerContainer"> /// The video player container. /// </param> public VideoPlayerUndocked(Main main, VideoPlayerContainer videoPlayerContainer) { this.InitializeComponent(); this._mainForm = main; this.Icon = (Icon)this._mainForm.Icon.Clone(); this._videoPlayerContainer = videoPlayerContainer; this._redockKeys = Utilities.GetKeys(Configuration.Settings.Shortcuts.MainVideoToggleVideoControls); this.RedockOnFullscreenEnd = false; videoPlayerContainer.TextBox.MouseMove += this.VideoPlayerUndocked_MouseMove; }
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; }
private void GoBackSeconds(double seconds, VideoPlayerContainer mediaPlayer) { if (mediaPlayer.CurrentPosition > seconds) mediaPlayer.CurrentPosition -= seconds; else mediaPlayer.CurrentPosition = 0; Utilities.ShowSubtitle(_paragraphs, mediaPlayer); }
private void GotoSubtitlePosition(VideoPlayerContainer mediaPlayer) { int index; if (mediaPlayer == MediaPlayerStart) index = comboBoxStartTexts.SelectedIndex; else index = comboBoxEndTexts.SelectedIndex; mediaPlayer.Pause(); if (index != -1) { double indexPositionInSeconds = _paragraphs[index].StartTime.TotalMilliseconds / 1000.0; if (indexPositionInSeconds > mediaPlayer.Duration) indexPositionInSeconds = mediaPlayer.Duration - (2 * 60); if (indexPositionInSeconds < 0) indexPositionInSeconds = 0; mediaPlayer.CurrentPosition = indexPositionInSeconds; mediaPlayer.RefreshProgressBar(); } }
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; }
public static void InitializeVideoPlayerAndContainer(string fileName, VideoInfo videoInfo, VideoPlayerContainer videoPlayerContainer, EventHandler onVideoLoaded, EventHandler onVideoEnded) { try { videoPlayerContainer.VideoPlayer = GetVideoPlayer(); videoPlayerContainer.VideoPlayer.Initialize(videoPlayerContainer.PanelPlayer, fileName, onVideoLoaded, onVideoEnded); videoPlayerContainer.ShowStopButton = Configuration.Settings.General.VideoPlayerShowStopButton; videoPlayerContainer.ShowFullscreenButton = false; videoPlayerContainer.ShowMuteButton = Configuration.Settings.General.VideoPlayerShowMuteButton; videoPlayerContainer.Volume = Configuration.Settings.General.VideoPlayerDefaultVolume; videoPlayerContainer.EnableMouseWheelStep(); videoPlayerContainer.VideoWidth = videoInfo.Width; videoPlayerContainer.VideoHeight = videoInfo.Height; } catch (Exception exception) { videoPlayerContainer.VideoPlayer = null; var videoError = new VideoError(); videoError.Initialize(fileName, videoInfo, exception); videoError.ShowDialog(); } }
/// <summary> /// The goto subtitle position. /// </summary> /// <param name="mediaPlayer"> /// The media player. /// </param> private void GotoSubtitlePosition(VideoPlayerContainer mediaPlayer) { int index; if (mediaPlayer == this.MediaPlayerStart) { index = this.comboBoxStartTexts.SelectedIndex; } else { index = this.comboBoxEndTexts.SelectedIndex; } mediaPlayer.Pause(); if (index != -1) { double indexPositionInSeconds = this._paragraphs[index].StartTime.TotalMilliseconds / TimeCode.BaseUnit; if (indexPositionInSeconds > mediaPlayer.Duration) { indexPositionInSeconds = mediaPlayer.Duration - (2 * 60); } if (indexPositionInSeconds < 0) { indexPositionInSeconds = 0; } mediaPlayer.CurrentPosition = indexPositionInSeconds; mediaPlayer.RefreshProgressBar(); } }
public int ShowSubtitle(List<Paragraph> paragraphs, VideoPlayerContainer videoPlayerContainer) { int result = Utilities.ShowSubtitle(paragraphs, videoPlayerContainer); return result; // TODO: add assertions to method UtilitiesTest.ShowSubtitle(List`1<Paragraph>, VideoPlayerContainer) }