예제 #1
0
        private async void Load_Click(object sender, RoutedEventArgs e)
        {
            adaptiveContentModel = (AdaptiveContentModel)SelectedContent.SelectedItem;

            if (tokenMethod == AzureKeyAcquisitionMethod.AuthorizationHeader)
            {
                // Use an IHttpFilter to identify key request URIs and insert an Authorization header with the Bearer token.
                var baseProtocolFilter = new HttpBaseProtocolFilter();
                httpClientFilter = new AddAuthorizationHeaderFilter(baseProtocolFilter);
                httpClientFilter.AuthorizationHeader = new HttpCredentialsHeaderValue("Bearer", adaptiveContentModel.AesToken);
                var httpClient = new HttpClient(httpClientFilter);

                // Here is where you can add any required custom CDN headers.
                httpClient.DefaultRequestHeaders.Append("X-HeaderKey", "HeaderValue");
                // NOTE: It is not recommended to set Authorization headers needed for key request on the
                // default headers of the HttpClient, as these will also be used on non-HTTPS calls
                // for media segments and manifests -- and thus will be easily visible.

                await LoadSourceFromUriAsync(adaptiveContentModel.ManifestUri, httpClient);
            }
            else
            {
                await LoadSourceFromUriAsync(adaptiveContentModel.ManifestUri);
            }

            // On small screens, hide the description text to make room for the video.
            DescriptionText.Visibility = (ActualHeight < 650) ? Visibility.Collapsed : Visibility.Visible;
        }
        private async void LoadId_Click(object sender, RoutedEventArgs e)
        {
            adaptiveContentModel = (AdaptiveContentModel)SelectedContent.SelectedItem;

            UriBox.Text = adaptiveContentModel.ManifestUri.ToString();
            await LoadSourceFromUriAsync(adaptiveContentModel.ManifestUri);
        }
예제 #3
0
        private async void LoadId_Click(object sender, RoutedEventArgs e)
        {
            if (mediaPlayer == null || adaptiveContentModels == null || loggerControl == null)
            {
                return;
            }

            this.SelectedModel = (AdaptiveContentModel)SelectedContent.SelectedItem;

            UriBox.Text = SelectedModel.ManifestUri.ToString();
            await CreateNewMediaPlaybackItem(SelectedModel.ManifestUri);
        }
        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 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);
        }
        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);
        }
예제 #8
0
 public void SetSelectedModel(AdaptiveContentModel model)
 {
     SelectedModel = model;
     SelectedContent.SelectedItem = SelectedModel;
 }