39 private bool _isPlayed = false; |
39 private bool _isPlayed = false; |
40 public VideoViewer() |
40 public VideoViewer() |
41 { |
41 { |
42 // Required to initialize variables |
42 // Required to initialize variables |
43 InitializeComponent(); /// <summary> |
43 InitializeComponent(); /// <summary> |
|
44 VideoScreen.MediaEnded += new RoutedEventHandler(VideoScreen_MediaEnded); |
|
45 VideoScreen.MediaOpened += new RoutedEventHandler(VideoScreen_MediaOpened); |
44 VideoPositionTimer.Interval = new System.TimeSpan(0, 0, 0, 0, 1000); |
46 VideoPositionTimer.Interval = new System.TimeSpan(0, 0, 0, 0, 1000); |
45 VideoPositionTimer.Tick += new EventHandler(VideoPositionTimer_Tick); |
47 VideoPositionTimer.Tick += new EventHandler(VideoPositionTimer_Tick); |
46 Commands.GoToTime.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(GoToTime_Executed); |
48 Commands.GoToTime.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(GoToTime_Executed); |
47 Commands.VideoViewer.Pause.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(Pause_Executed); |
49 Commands.VideoViewer.Pause.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(Pause_Executed); |
48 Commands.VideoViewer.Play.Executed +=new EventHandler<SLExtensions.Input.ExecutedEventArgs>(Play_Executed); |
50 Commands.VideoViewer.Play.Executed +=new EventHandler<SLExtensions.Input.ExecutedEventArgs>(Play_Executed); |
49 } |
51 } |
50 |
52 |
51 void GoToTime_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
53 void VideoScreen_MediaOpened(object sender, RoutedEventArgs e) |
|
54 { |
|
55 VideoScreen.Play(); |
|
56 VideoPositionTimer.Start(); |
|
57 |
|
58 } |
|
59 |
|
60 void VideoScreen_MediaEnded(object sender, RoutedEventArgs e) |
|
61 { |
|
62 VideoPositionTimer.Stop(); |
|
63 } |
|
64 |
|
65 private void GoToTime_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
52 { |
66 { |
53 if (e.Source == DataContext && e.Source != null) |
67 if (e.Source == DataContext && e.Source != null) |
54 { |
68 { |
55 VideoScreen.Pause(); |
69 |
|
70 VideoPositionTimer.Start(); |
|
71 |
56 VideoScreen.Position = new TimeSpan(((TimeSpan)e.Parameter).Ticks); |
72 VideoScreen.Position = new TimeSpan(((TimeSpan)e.Parameter).Ticks); |
|
73 |
57 |
74 |
58 } |
75 } |
59 } |
76 } |
60 |
77 |
61 void VideoPositionTimer_Tick(object sender, EventArgs e) |
78 void VideoPositionTimer_Tick(object sender, EventArgs e) |
75 VideoScreen.Position = TS; |
92 VideoScreen.Position = TS; |
76 |
93 |
77 } |
94 } |
78 void Pause_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
95 void Pause_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
79 { |
96 { |
80 VideoScreen.Pause(); |
97 if(e.Source == DataContext || e.Parameter == DataContext) |
81 _isPlayed = false; |
|
82 VideoPositionTimer.Stop(); |
|
83 if (VideoPositionTimer.IsEnabled) |
|
84 { |
98 { |
85 MessageBox.Show("Click Time IS NOT STOPPED"); |
99 VideoScreen.Pause(); |
|
100 _isPlayed = false; |
|
101 VideoPositionTimer.Stop(); |
|
102 if (VideoPositionTimer.IsEnabled) |
|
103 { |
|
104 MessageBox.Show("Click Time IS NOT STOPPED"); |
|
105 } |
86 } |
106 } |
87 } |
107 } |
88 |
108 |
89 void Play_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
109 void Play_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
90 { |
110 { |
99 private void VideoScreen_MediaFailed(object sender, System.Windows.ExceptionRoutedEventArgs e) |
119 private void VideoScreen_MediaFailed(object sender, System.Windows.ExceptionRoutedEventArgs e) |
100 { |
120 { |
101 MessageBox.Show(e.ErrorException.ToString()); |
121 MessageBox.Show(e.ErrorException.ToString()); |
102 } |
122 } |
103 |
123 |
104 private void VideoScreen_CurrentStateChanged(object sender, System.Windows.RoutedEventArgs e) |
124 |
105 { |
|
106 |
|
107 } |
|
108 |
125 |
109 private void VideoScreen_MarkerReached(object sender, System.Windows.Media.TimelineMarkerRoutedEventArgs e) |
126 private void VideoScreen_MarkerReached(object sender, System.Windows.Media.TimelineMarkerRoutedEventArgs e) |
110 { |
127 { |
111 MessageBox.Show("toto"); |
128 MessageBox.Show("toto"); |
112 } |
129 } |