コード例 #1
0
        protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            switch (e.PropertyName)
            {
            case "AreTransportControlsEnabled":
                _controller.Visibility = Element.AreTransportControlsEnabled ? ViewStates.Visible : ViewStates.Gone;
                break;

            case "Source":
                UpdateSource();
                break;

            case "CurrentState":
                switch (Element.CurrentState)
                {
                case MediaElementState.Playing:
                    if (!_view.IsPlaying)
                    {
                        _view.Start();
                    }
                    Element.CurrentState = _view.IsPlaying ? MediaElementState.Playing : MediaElementState.Stopped;
                    break;

                case MediaElementState.Paused:
                    _view.Pause();
                    break;

                case MediaElementState.Stopped:
                    if (_view.IsPlaying)
                    {
                        _view.SeekTo(0);
                        _view.StopPlayback();
                    }
                    Element.CurrentState = _view.IsPlaying ? MediaElementState.Playing : MediaElementState.Stopped;
                    break;
                }

                break;

            case "IsLooping":
                if (_mediaPlayer != null)
                {
                    _mediaPlayer.Looping = Element.IsLooping;
                }
                break;

            case "KeepScreenOn":
                _view.KeepScreenOn = Element.KeepScreenOn;
                break;

            case "Stretch":
                UpdateLayoutParameters();
                break;
            }

            base.OnElementPropertyChanged(sender, e);
        }
コード例 #2
0
 void IMediaElementRenderer.Seek(TimeSpan time)
 {
     if (Control != null)
     {
         try
         {
             _view?.SeekTo((int)time.TotalMilliseconds);
         }
         catch (ObjectDisposedException ode)
         {
         }
     }
 }
コード例 #3
0
 void IMediaElementRenderer.Seek(TimeSpan time)
 {
     _view.SeekTo((int)time.TotalMilliseconds);
 }