void MediaPlayer_MediaLoading(object sender, MediaPlayerDeferrableEventArgs e)
 {
     if (Manager.DownloaderPlugin is ILifetimeAwareDownloaderPlugin)
     { 
         var args = e as MediaLoadingEventArgs;
         ((ILifetimeAwareDownloaderPlugin)Manager.DownloaderPlugin).OnOpenMedia(args.Source);
     }
 }
 /// <summary>
 /// Occurs just before the MMPPF MediaPlayer source is set, cancel any closed caption downloads for the current video.
 /// </summary>
 /// <param name="sender">MMPPF media player.</param>
 /// <param name="e">Loading data.</param>
 private void MediaPlayer_MediaLoading(object sender, MediaPlayerDeferrableEventArgs e)
 {
   if (null != this._WebVTTCaptions)
   {
     this._WebVTTCaptions.Cancel();
     this._WebVTTCaptions = null;
   }
 }
 void mediaPlayer_MediaEnding(object sender, MediaPlayerDeferrableEventArgs e)
 {
     if (StreamEnded != null) StreamEnded(this, EventArgs.Empty);
 }
        async void mediaPlayer_MediaLoading(object sender, MediaPlayerDeferrableEventArgs e)
#endif
        {
            if (IsEnabled)
            {
                if (Source != null)
                {
                    var deferral = e.DeferrableOperation.GetDeferral();
                    try
                    {
                        await LoadAds(Source, deferral.CancellationToken);
#if WINDOWS_PHONE7
                        await base.PlayStartupAds(deferral.CancellationToken);
#endif
                    }
                    catch { /* ignore */ }
                    finally
                    {
                        deferral.Complete();
                    }
                }
            }
        }
 protected override async void MediaPlayer_MediaLoading(object sender, MediaPlayerDeferrableEventArgs e)
        void MediaPlayer_MediaLoading(object sender, MediaPlayerDeferrableEventArgs e)
        {
            var mediaLoadingEventArgs = e as MediaLoadingEventArgs;

            if (DownloaderPlugin != null && AutoSchemeDownloaderPlugin)
            {
                var src = mediaLoadingEventArgs.Source;
                var newSrc = new Uri(src.OriginalString.Replace("http:", downloaderPluginHttpScheme).Replace("https:", downloaderPluginHttpsScheme));
                mediaLoadingEventArgs.Source = newSrc;
            }

            if (!Manager.IsInitialized) // only do this the first time
            {
                Manager.Initialize(MediaPlayer.MediaExtensionManager);
                foreach (var handler in ByteStreamHandlers)
                {
                    Manager.RegisterByteStreamHandler(handler.FileExtension, handler.MimeType);
                }
                foreach (var handler in SchemeHandlers)
                {
                    Manager.RegisterSchemeHandler(handler.Scheme);
                }
            }

            Manager.SourceUri = mediaLoadingEventArgs.Source;
        }