Example #1
0
        private void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            if (isPlaying)
            {
                ViewTimeline.Pause();
                isPlaying = false;
                return;
            }
            else if (!Loaded)
            {
                ViewTimeline.Source         = new Uri(Model.SourceInfo.FullName);
                ViewTimeline.LoadedBehavior = MediaState.Manual;

                timer                     = new DispatcherTimer();
                timer.Interval            = TimeSpan.FromMilliseconds(10);
                timer.Tick               += (s, a) => { CheckPlayTime(); };
                ViewTimeline.MediaOpened += SetMainVideo;
                ViewTimeline.Play();
                Loaded = true;
                return;
            }
            else
            {
                ViewTimeline.Play(); isPlaying = true;
            }
        }
Example #2
0
 private void doInitialLoad()
 {
     ViewTimeline.Source         = new Uri(Model.SourceInfo.FullName);
     ViewTimeline.LoadedBehavior = MediaState.Manual;
     MainTimer                 = new DispatcherTimer();
     MainTimer.Interval        = TimeSpan.FromMilliseconds(100);
     MainTimer.Tick           += (s, a) => { CheckPlayTime(); };
     ViewTimeline.MediaOpened += SetMainVideo;
     ViewTimeline.Play();
     ViewTimeline.Pause();
     Model.WindowState.isLoaded = true;
 }
Example #3
0
        private void CheckPlayTime()
        {
            if (Model.WindowState.isPlaying)
            {
                Model.WindowState.TimeSet += 0.1;
            }
            var pixelsRelativeToSeconds = Model.WindowState.TimeSet * Model.Scale;

            CheckSubtitle(pixelsRelativeToSeconds);
            for (var i = Model.MediaTracks.Count - 1; i >= 0; i--)
            {
                if (InPatchSection(Model.MediaTracks[i], pixelsRelativeToSeconds))
                {
                    ViewTimeline.Pause();
                    Canvas.SetLeft(CurrentTime, Model.WindowState.TimeSet * Model.Scale);
                    if (Model.WindowState.currentPatch == Model.MediaTracks[i])
                    {
                        return;
                    }

                    Model.WindowState.currentPatch = Model.MediaTracks[i];
                    PatchWindow.Source             = Model.MediaTracks[i].Path;

                    var shift    = Model.WindowState.currentPatch.LeftShiftInPixels;
                    var position = pixelsRelativeToSeconds - shift + Model.WindowState.currentPatch.StartPixel;
                    PatchWindow.Position = TimeSpan.FromSeconds(position / Model.Scale);
                    if (Model.WindowState.isPlaying)
                    {
                        PatchWindow.Play();
                    }

                    ViewTimeline.Volume     = 0;
                    ViewTimeline.Visibility = System.Windows.Visibility.Hidden;
                    PatchWindow.Visibility  = System.Windows.Visibility.Visible;
                    Canvas.SetLeft(CurrentTime, Model.WindowState.TimeSet * Model.Scale);
                    return;
                }
            }
            PatchWindow.Pause();
            if (Model.WindowState.isPlaying)
            {
                ViewTimeline.Play();
            }
            PatchWindow.Visibility         = System.Windows.Visibility.Collapsed;
            ViewTimeline.Volume            = Model.WindowState.volume;
            ViewTimeline.Visibility        = System.Windows.Visibility.Visible;
            Model.WindowState.currentPatch = null;
            Canvas.SetLeft(CurrentTime, Model.WindowState.TimeSet * Model.Scale);
        }
Example #4
0
 private void PausedChanged()
 {
     if (Model.WindowState.isPlaying)
     {
         ViewTimeline.Pause();
         PatchWindow.Pause();
         Model.WindowState.isPlaying = false;
         return;
     }
     else if (!Model.WindowState.isLoaded)
     {
         doInitialLoad();
         return;
     }
     else
     {
         ViewTimeline.Play(); PatchWindow.Play(); Model.WindowState.isPlaying = true;
     }
 }