public MediaElementRenderer(Context context) : base(context) { Xamarin.Forms.MediaElement.VerifyMediaElementFlagEnabled(nameof(MediaElementRenderer)); _automationPropertiesProvider = new AutomationPropertiesProvider(this); _effectControlProvider = new EffectControlProvider(this); _view = new FormsVideoView(Context); _view.SetZOrderMediaOverlay(true); _view.SetOnCompletionListener(this); _view.SetOnInfoListener(this); _view.SetOnPreparedListener(this); _view.SetOnErrorListener(this); _view.MetadataRetrieved += MetadataRetrieved; AddView(_view, -1, -1); _controller = new MediaController(Context); _controller.SetAnchorView(this); _view.SetMediaController(_controller); }
void ReleaseControl() { if (_view != null) { _view.MetadataRetrieved -= MetadataRetrieved; RemoveView(_view); _view.SetOnPreparedListener(null); _view.SetOnCompletionListener(null); _view.Dispose(); _view = null; } if (_controller != null) { _controller.Dispose(); _controller = null; } if (_mediaPlayer != null) { _mediaPlayer.Dispose(); _mediaPlayer = null; } }