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); }
void IMediaElementRenderer.Seek(TimeSpan time) { if (Control != null) { try { _view?.SeekTo((int)time.TotalMilliseconds); } catch (ObjectDisposedException ode) { } } }
void IMediaElementRenderer.Seek(TimeSpan time) { _view.SeekTo((int)time.TotalMilliseconds); }