예제 #1
0
        private void Page_OnLoaded(object sender, RoutedEventArgs e)
        {
            var mediaPlayer = new MediaPlayer();

            // We use a helper class that logs all the events for the MediaPlayer:
            mediaPlayerLogger = new MediaPlayerLogger(LoggerControl, mediaPlayer);

            // In addition to logging, we use the callbacks to update some UI elements in this scenario:
            RegisterForDiscreteControls(mediaPlayer);
            RegisterForPositionUpdateControls(mediaPlayer);

            // Ensure we have PlayReady support, in case the user enters a DASH/PR Uri in the text box.
            var prHelper = new PlayReadyHelper(LoggerControl);

            prHelper.SetUpProtectionManager(mediaPlayer);
            mediaPlayerElement.SetMediaPlayer(mediaPlayer);

            ContentSelectorControl.Initialize(
                mediaPlayer,
                MainPage.ContentManagementSystemStub.Where(m => !m.Aes && m.Live),
                null,
                LoggerControl,
                LoadSourceFromUriAsync);

            // Initialize scenario specific layout:
            ContentSelectorControl.SetAutoPlay(true);
            mediaPlayerElement.AreTransportControlsEnabled = false;
            LoggerControl.Height = 200;
        }
        private void Page_OnLoaded(object sender, RoutedEventArgs e)
        {
            // Explicitly create the instance of MediaPlayer if you need to register for its events
            // (like MediaOpened / MediaFailed) prior to setting an IMediaPlaybackSource.
            var mediaPlayer = new MediaPlayer();

            // We use a helper class that logs all the events for the MediaPlayer:
            mediaPlayerLogger = new MediaPlayerLogger(LoggerControl, mediaPlayer);

            // Ensure we have PlayReady support, in case the user enters a DASH/PR Uri in the text box.
            var prHelper = new PlayReadyHelper(LoggerControl);

            prHelper.SetUpProtectionManager(mediaPlayer);
            mediaPlayerElement.SetMediaPlayer(mediaPlayer);

            // This Scenario focuses on event handling, mostly via the "Logger" helper classes
            // in the Shared folder.
            //
            // In addition, the App can also insert an IHttpFilter into the Windows.Web.Http stack
            // which is used by the AdaptiveMediaSource.  To do so, it must derive a class from
            // IHttpFilter, provide the HttpBaseProtocolFilter to that class to execute requests,
            // then use the derived filter as the constructor for the HttpClient.
            //
            // The HttpClient is then used in the constructor of the AdaptiveMediaSource.
            // The App should explicitly set:
            //   CacheControl.WriteBehavior = HttpCacheWriteBehavior.NoCache
            // When passing an HttpClient into the constructor of AdpativeMediaSource,
            // set this on the HttpBaseProtocolFilter.
            //
            // More than one IHttpFilter can be nested, for example, an App might
            // use a filter to modify web requests: see Scenario3 for details.
            //
            // In this scenario, we add an AdaptiveMediaSourceHttpFilterLogger to provide additional
            // verbose logging details for each request.
            var baseProtocolFilter = new HttpBaseProtocolFilter();

            baseProtocolFilter.CacheControl.WriteBehavior = HttpCacheWriteBehavior.NoCache;  // Always set WriteBehavior = NoCache
            var fistLevelFilter = new AdaptiveMediaSourceHttpFilterLogger(LoggerControl, baseProtocolFilter);
            var httpClient      = new HttpClient(fistLevelFilter);


            ContentSelectorControl.Initialize(
                mediaPlayer,
                MainPage.ContentManagementSystemStub.Where(m => !m.Aes),
                httpClient,
                LoggerControl,
                LoadSourceFromUriAsync);
        }
        private void Page_OnLoaded()
        {
            // NOTE: Change this to 110 to see DASH with PlayReady scenario
            const int contentIdForCMS = 1;

            AdaptiveContentModel adaptiveContentModel = MainPage.FindContentById(contentIdForCMS);

            if (adaptiveContentModel.PlayReady)
            {
                // For PlayReady, we need to create and setup MediaPlayer.MediaProtectionManager
                // All scenarios use a helper class to do this, see Helpers\PlayReadyHelper.cs
                var mp       = new MediaPlayer();
                var prHelper = new PlayReadyHelper(); // From SDKTemplate.Helpers.PlayReadyHelper
                prHelper.SetUpProtectionManager(mp);
                mediaPlayerElement.SetMediaPlayer(mp);
            }

            mediaPlayerElement.Source = MediaSource.CreateFromUri(adaptiveContentModel.ManifestUri);
        }
        private void Page_OnLoaded(object sender, RoutedEventArgs e)
        {
            var mediaPlayer = new MediaPlayer();

            // We use a helper class that logs all the events for the MediaPlayer:
            mediaPlayerLogger = new MediaPlayerLogger(LoggerControl, mediaPlayer);

            // Ensure we have PlayReady support, in case the user enters a DASH/PR Uri in the text box.
            var prHelper = new PlayReadyHelper(LoggerControl);

            prHelper.SetUpProtectionManager(mediaPlayer);
            mediaPlayerElement.SetMediaPlayer(mediaPlayer);

            ContentSelectorControl.Initialize(
                mediaPlayer,
                MainPage.ContentManagementSystemStub.Where(m => !m.Aes),
                null,
                LoggerControl,
                LoadSourceFromUriAsync);
        }
        private async void Page_OnLoaded()
        {
            // Explicitly create the instance of MediaPlayer if you need to register for its events
            // (like MediaOpened / MediaFailed) prior to setting an IMediaPlaybackSource.
            var mediaPlayer = new MediaPlayer();

            RegisterForMediaPlayerEvents(mediaPlayer);

            // Ensure we have PlayReady support, if the user enters a DASH/PR Uri in the text box:
            var prHelper = new PlayReadyHelper(LoggerControl);

            prHelper.SetUpProtectionManager(mediaPlayer);
            mediaPlayerElement.SetMediaPlayer(mediaPlayer);

            AdaptiveContentModel adaptiveContentModel = MainPage.FindContentById(1);

            UriBox.Text           = adaptiveContentModel.ManifestUri.ToString();
            LoadSourceFromUriTask = LoadSourceFromUriAsync(adaptiveContentModel.ManifestUri);
            await LoadSourceFromUriTask;
        }
예제 #6
0
        private async void Page_OnLoaded()
        {
            var mediaPlayer = new MediaPlayer();

            RegisterForMediaPlayerEvents(mediaPlayer);

            // Ensure we have PlayReady support, in case the user enters a DASH/PR Uri in the text box.
            var prHelper = new PlayReadyHelper(LoggerControl);

            prHelper.SetUpProtectionManager(mediaPlayer);

            mediaPlayerElement.SetMediaPlayer(mediaPlayer);

            // Choose a default content.
            SelectedContent.ItemsSource  = MainPage.ContentManagementSystemStub;
            adaptiveContentModel         = MainPage.FindContentById(1);
            SelectedContent.SelectedItem = adaptiveContentModel;

            UriBox.Text = adaptiveContentModel.ManifestUri.ToString();
            await LoadSourceFromUriAsync(adaptiveContentModel.ManifestUri);
        }
예제 #7
0
        private void Page_OnLoaded(object sender, RoutedEventArgs e)
        {
            var mediaPlayer = new MediaPlayer();

            // We use a helper class that logs all the events for the MediaPlayer:
            mediaPlayerLogger = new MediaPlayerLogger(LoggerControl, mediaPlayer);

            // Ensure we have PlayReady support, if the user enters a DASH/PR Uri in the text box:
            var prHelper = new PlayReadyHelper(LoggerControl);

            prHelper.SetUpProtectionManager(mediaPlayer);
            mediaPlayerElement.SetMediaPlayer(mediaPlayer);

            ContentSelectorControl.Initialize(
                mediaPlayer,
                MainPage.ContentManagementSystemStub.Where(m => !m.Aes),
                null,
                LoggerControl,
                LoadSourceFromUriAsync);

            // There is no InboundBitsPerSecondChanged event, so we start a polling thread to update UI.
            PollForInboundBitsPerSecond(ctsForInboundBitsPerSecondUiRefresh);
        }
        private async void Page_OnLoaded(object sender, RoutedEventArgs e)
        {
            var mediaPlayer = new MediaPlayer();

            RegisterForMediaPlayerEvents(mediaPlayer);

            // Ensure we have PlayReady support, if the user enters a DASH/PR Uri in the text box:
            var prHelper = new PlayReadyHelper(LoggerControl);

            prHelper.SetUpProtectionManager(mediaPlayer);
            mediaPlayerElement.SetMediaPlayer(mediaPlayer);

            // Choose a default content.
            SelectedContent.ItemsSource  = MainPage.ContentManagementSystemStub.ToArray();
            adaptiveContentModel         = MainPage.FindContentById(10);
            SelectedContent.SelectedItem = adaptiveContentModel;

            UriBox.Text = adaptiveContentModel.ManifestUri.ToString();
            await LoadSourceFromUriAsync(adaptiveContentModel.ManifestUri);

            // There is no InboundBitsPerSecondChanged event, so we start a polling thread to update UI.
            PollForInboundBitsPerSecond(ctsForInboundBitsPerSecondUiRefresh);
        }