Ejemplo n.º 1
0
        public MediaView()
        {
            InitializeComponent();

            var viewModel = new MediaViewModel();

            InitMediaPlayer(viewModel);
        }
Ejemplo n.º 2
0
        public MediaView(MediaViewModel viewModel)
        {
            InitializeComponent();

            InitMediaPlayer(viewModel);
        }
Ejemplo n.º 3
0
        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); };
        }