/// <summary> /// 时间变化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Events_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { this.Dispatcher.BeginInvoke(new Action(delegate { labTime.Content = TimeSpan.FromMilliseconds(e.NewTime).ToString().Substring(0, 8); })); }
private void vlcControl1_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { if (!f) { label1.Invoke(new Action(() => label1.Text = TimeSpan.FromMilliseconds(e.NewTime).ToString(@"hh\:mm\:ss"))); } }
/// <summary>The LibVLC TimeChanged event handler handler</summary> /// <param name="sender">The object that triggered the event</param> /// <param name="e">The event arguments</param> private void VlcControl_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { lock (_isClosingLock) { if (_isClosing) { return; } } if (!_ccDetected && vlcControl.IsPlaying && vlcControl.SubTitles.Count != 0) { _ccDetected = true; this.InvokeIfRequired(GuiShow); ThreadPool.QueueUserWorkItem(state => ProcessClosedCaptioning()); } this.InvokeIfRequired(() => { lock (_isClosingLock) // TODO: Is this dangerous? { if (_isClosing || IsDisposed) { return; } var time = new TimeSpan(e.NewTime * 10000); timeStatusLabel.Text = string.Format(Resources.TvForm_PlaybackTime, time.Minutes.ToString().PadLeft(2, '0'), time.Seconds.ToString().PadLeft(2, '0')); } }); }
void TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { this.Dispatcher.BeginInvoke(new Action(delegate { if (MediaPlayer.Time < this.time.time) { return; } time = MediaPlayer.Time; second = time; wait_for_update = false; RaisePropertyChanged("Second"); })); }
private void TestOnTimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { PositionSlider.Dispatcher.BeginInvoke(new Action(() => { ignoreevent = true; PositionSlider.Value = myControl.MediaPlayer.Position * 10; ignoreevent = false; TimeSpan time = new TimeSpan(myControl.MediaPlayer.Time * 10000); TimeSpan dur = myControl.MediaPlayer.GetCurrentMedia().Duration; TimeSpan rem = dur - time; switch (displayOption) { case DisplayOptions.Elapsed: timeLabel.Content = String.Format("{0:mm\\:ss}", time); break; case DisplayOptions.Remaining: timeLabel.Content = String.Format("{0:mm\\:ss}", rem); break; case DisplayOptions.ElapsedAndTotal: timeLabel.Content = String.Format("{0:mm\\:ss}/{1:mm\\:ss}", time, dur); break; } })); }
/// 當影片時間改變 private void TimeChangedEventHandler(object sender, VlcMediaPlayerTimeChangedEventArgs e) { //Console.WriteLine("TimeChangedEventHandler"); this.SettingUI(() => { if (this.Grid_Loading.Visibility == Visibility.Visible && this.Vlc_VideoPlayer.SourceProvider.MediaPlayer.IsPlaying()) { this.Grid_Loading.Visibility = Visibility.Collapsed; } else if (!this.Vlc_VideoPlayer.SourceProvider.MediaPlayer.IsPlaying() && this.Grid_Loading.Visibility == Visibility.Collapsed) { this.Grid_Loading.Visibility = Visibility.Visible; } }); // 回放功能必須使用StreamLink將起始位置導向欲回放位置, 但重啟StreamLink後雖導向正確位置, 但播放器Time參數也是從0開始, 因此用offset來記錄播放到哪 this.VideoPlayerModel.NowDuration = TimeSpan.FromMilliseconds(e.NewTime) + this.VideoPlayerModel.NowDurationOffSet; }
private void VlcMediaPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { var m = sender as VlcMediaPlayer; var a = m.Audio; if (IsMute && !VlcMediaPlayer.Audio.IsMute) { VlcMediaPlayer.Audio.IsMute = true; } if (!IsMute && VlcMediaPlayer.Audio.IsMute) { VlcMediaPlayer.Audio.IsMute = false; } if (VlcMediaPlayer.Audio.Volume != Volume) { VlcMediaPlayer.Audio.Volume = Volume; } }
private void MediaPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { vlcControl.SourceProvider.MediaPlayer.TimeChanged -= MediaPlayer_TimeChanged; ThreadPool.QueueUserWorkItem(_ => { long length = vlcControl.SourceProvider.MediaPlayer.Length; int duration = Convert.ToInt32(length / 1000.0); StorageFile storageFile = storageFileBll.insert(this.sourceFilePath, destFilePath, 1, duration); //直接变更控件背景 App.Current.Dispatcher.Invoke((Action)(() => { backgroundMusicUrl.Text = destFilePath; backgroundMusicUrl.Tag = storageFile; })); vlcControl?.Dispose(); }); }
private void MediaPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { vlcControl.SourceProvider.MediaPlayer.TimeChanged -= MediaPlayer_TimeChanged; string shotJpg = FileUtil.replaceExt(destFilePath, "jpg"); FileInfo shotFile = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + shotJpg); ThreadPool.QueueUserWorkItem(_ => { Console.WriteLine("视频截图----------"); vlcControl.SourceProvider.MediaPlayer.TakeSnapshot(shotFile, 0, 0); long length = vlcControl.SourceProvider.MediaPlayer.Length; int duration = Convert.ToInt32(length / 1000.0); int jpgWidth = 0; int jpgHeight = 0; try { System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + shotJpg); jpgWidth = sourceImage.Width; jpgHeight = sourceImage.Height; } catch (Exception) { } StorageVideo storageVideo = storageVideoBll.insert(this.sourceFilePath, destFilePath, duration, shotJpg, jpgWidth, jpgHeight, folderId); //插入一个视频到列表 App.Current.Dispatcher.Invoke((Action)(() => { Canvas newVideo = initOneVideo(storageVideo); videoListWrap.Children.Insert(0, newVideo); selectButton(newVideo); })); vlcControl?.Dispose(); }); }
private void MediaPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { vlcControl.SourceProvider.MediaPlayer.TimeChanged -= MediaPlayer_TimeChanged; ThreadPool.QueueUserWorkItem(_ => { long length = vlcControl.SourceProvider.MediaPlayer.Length; int duration = Convert.ToInt32(length / 1000.0); StorageFile storageFile = storageFileBll.insert(this.sourceFilePath, destFilePath, folderId, duration); //插入一个音频到列表 App.Current.Dispatcher.Invoke((Action)(() => { Canvas newImage = initOneFile(storageFile); imageListWrap.Children.Insert(0, newImage); selectButton(newImage); })); vlcControl?.Dispose(); }); }
private void OnVlcTimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { myLblVlcPosition.InvokeIfRequired(l => l.Text = TimeSpan.FromMilliseconds(e.NewTime).ToString(@"hh\:mm\:ss")); }
private void OnTimeChangedInternal(object sender, VlcMediaPlayerTimeChangedEventArgs e) { OnTimeChanged(e.NewTime); }
private void _vlcMediaPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { Console.WriteLine($"time: {e.NewTime / 1000}"); }
private void vlcPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { //vlcPlayer.Audio.Volume = 50; _stopWatch.Restart(); _currentTime = e.NewTime; }
private void vlcControl1_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { }
private void TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { CurrentTime = e.NewTime; }
private void myVlcControl_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { if (isVideoSliderChangedByHand || mainViewModel.VideoViewModel.IsLoading) { return; } this.BeginInvokeIfRequired(_ => { if (myVlcControl == null) { return; } var videoTime = myVlcControl.MediaPlayer.Time; var segmentPart = getCurrentSegmentPart(videoTime); updateLabels(segmentPart, videoTime); if (loopShouldBePaused) { // the subtitle and other labels have been updated, the loop can be paused myVlcControl.MediaPlayer.Pause(); loopShouldBePaused = false; return; } if (isVideoTimeChangedByHand) { return; } // handle the looping long loopStart = (Settings.Instance.PlayMode == PlayMode.Selection && segmentPartsToLoop.Any()) ? ((segmentPartsToLoop.First().Subtitle.Start - Settings.Instance.TimePaddingForLoop < myVlcControl.MediaPlayer.Length - startOffsetInMs) ? (Math.Max(0, segmentPartsToLoop.First().Subtitle.Start - Settings.Instance.TimePaddingForLoop)) : 0) : 0; long loopEnd = (Settings.Instance.PlayMode == PlayMode.Selection && segmentPartsToLoop.Any()) ? Math.Min(segmentPartsToLoop.Last().Subtitle.End + Settings.Instance.TimePaddingForLoop, myVlcControl.MediaPlayer.Length - endOffsetInMs) : myVlcControl.MediaPlayer.Length - endOffsetInMs; if (e.NewTime >= loopEnd && !startTimeOutOfVideoBounds) { if (Settings.Instance.LoopSelection && (Settings.Instance.LoopNumber == 0 || currentLoopNumber < Settings.Instance.LoopNumber)) { // looping continues myVlcControl.MediaPlayer.Time = loopStart; if (Settings.Instance.LoopNumber == 0) { currentLoopNumber = 0; } else { currentLoopNumber++; } } else { // end of looping mainViewModel.VideoViewModel.IsPlaying = false; myVlcControl.MediaPlayer.Time = loopStart; loopShouldBePaused = true; currentLoopNumber = 0; } videoTime = loopStart; } isVideoSliderChangedByHand = true; sliderVideo.Value = videoTime; isVideoSliderChangedByHand = false; }); }
/// <summary> /// Event handler for Time changed. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PlayerOnTimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { // I don't print this to keep console "clean". //Console.WriteLine(@"PlayerOnPlaying"); }
public void SliderChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { VideoTime = videoView.MediaPlayer.Time; //Debug.WriteLine(videoView.MediaPlayer.Position + "; " + videoView.MediaPlayer.Time); https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4 }
private void _vlcMediaPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { var time = TimeSpan.FromMilliseconds(e.NewTime); TimeChanged?.Invoke(time); }
private void MediaPlayer_TimeChanged(object sender, VlcMediaPlayerTimeChangedEventArgs e) { long time = e.NewTime / 1000; VM.TimeIndex = $"{Math.Floor((decimal)time / 60).ToString().PadLeft(2, '0')}:{(time % 60).ToString().PadLeft(2, '0')}"; }