public MediaView() { InitializeComponent(); var viewModel = new MediaViewModel(); InitMediaPlayer(viewModel); }
public MediaView(MediaViewModel viewModel) { InitializeComponent(); InitMediaPlayer(viewModel); }
private void InitMediaPlayer(MediaViewModel viewModel) { _mediaPlay = MediaPlay.Forward; _isDragging = false; this.DataContext = viewModel; viewModel.PlayRequested += (sender, e) => media.Play(); _timer = new DispatcherTimer(); _timer.Interval = TimeSpan.FromMilliseconds(200); _timer.Tick += new EventHandler(timer_Tick); _timer.Stop(); media.MediaOpened += (o, e) => { _timer.Start(); media.ScrubbingEnabled = false; sliderVolume.IsEnabled = media.IsLoaded; if (media.NaturalDuration.HasTimeSpan) { var ts = media.NaturalDuration.TimeSpan; sliderTime.Minimum = 0; sliderTime.Maximum = ts.TotalSeconds; sliderTime.SmallChange = 1; sliderTime.LargeChange = Math.Min(10, ts.Seconds / 10); timeEnd.Content = new DateTime(ts.Ticks).ToString("mm:ss"); } }; media.MediaFailed += (o, e) => { //to do: think if here or in viewmodel to report of failed media?! }; media.MediaEnded += (o, e) => { media.Stop(); btnPlay.IsChecked = false; }; sliderVolume.IsEnabled = false; this.Loaded += (sender, e) => { _parentWindow = Window.GetWindow(this); _parentWindow.Background = Brushes.Black; }; viewModel.ScreenSizeChangeRequested += (sender, e) => { setFullScreen(((ScreenSizeEventArgs)e).Fullscreen); }; }