public override void Unload()
 {
     Reset();
     _timer.Stop();
     if (_player != null)
         _player.Stop();
     _player = null;
 }
 private void OpenStream(object o)
 {
     var url = o.ToString();
     if (string.IsNullOrEmpty(url)) return;
     try
     {
         var player = CreateMediaUriElement();
         player.Source = new Uri(url, UriKind.Absolute);
         player.Play();
         IsPlaying = true;
         _player = player;
         HasChapters = false;
     }
     catch (Exception exc)
     {
         var message = String.Format("Unable to load stream at '{0}'.", url);
         Logger.Instance.Warn(message, exc);
         MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
     OnPropertyChanged("Media");
 }
        private void OpenDevice(object o)
        {
            var deviceIndex = (int) o;
            try
            {
                var player = new VideoCaptureElement();
                player.BeginInit();
                player.VideoCaptureDevice = MultimediaUtil.VideoInputDevices[deviceIndex];
                player.VideoCaptureSource = MultimediaUtil.VideoInputDevices[deviceIndex].Name;
                //player.Width = 320;
                //player.DesiredPixelWidth = 320;
                //player.Height = 240;
                //player.DesiredPixelHeight = 240;
                //player.FPS = 30;
                player.EndInit();

                player.Play();
                IsPlaying = true;
                _player = player;
                HasChapters = false;
            }
            catch (Exception exc)
            {
                const string message = "Unable to load selected device.";
                Logger.Instance.Warn(message, exc);
                MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            OnPropertyChanged("Media");
        }
 private void OpenDisc(object o)
 {
     if (o == null) return;
     var drive = (DriveInfo)o;
     try
     {
         var player = new DvdPlayerElement();
         player.BeginInit();
         player.PlayOnInsert = true;
         player.DvdDirectory = new Uri(string.Format(@"{0}VIDEO_TS", drive.Name)).AbsolutePath;
         player.EndInit();
         IsPlaying = true;
         _player = player;
         HasChapters = true;
     }
     catch (Exception exc)
     {
         var message = String.Format("Unable to read disc '{0}'.", drive);
         Logger.Instance.Warn(message, exc);
         MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
     OnPropertyChanged("Media");
 }