Example #1
0
        private void SetOverride(int group, int[] tracks, bool enableRandomAdaptation)
        {
            ITrackSelectionFactory factory = tracks.Length == 1 ? _fixedFactory
                           : (enableRandomAdaptation ? _randomFactory : _adaptiveVideoTrackSelectionFactory);

            _override = new MappingTrackSelector.SelectionOverride(factory, group, tracks);
        }
        private void InitializePlayback(StreamingUri itemToPlay)
        {
            if (mediaStreams == null)
            {
                mediaStreams = JsonConvert.DeserializeObject <List <StreamingUri> >(Intent.GetStringExtra("mediaStreams"))
                               .Where(a => a.StreamingUrl.OriginalString.Contains(".mp4")).ToList();
            }

            if (player is null)
            {
                mediaSourceFactory   = new DefaultDataSourceFactory(this, Util.GetUserAgent(this, Application.PackageName));
                trackSelectorFactory = new AdaptiveTrackSelection.Factory();
                var renderersFactory = new DefaultRenderersFactory(this);
                player            = ExoPlayerFactory.NewSimpleInstance(this, renderersFactory, new DefaultTrackSelector(trackSelectorFactory));
                playerView        = FindViewById <PlayerView>(Resource.Id.playerView);
                playerView.Player = player;
                playerView.RequestFocus();
                playerView.SetControllerVisibilityListener(this);
                linksSpinner = FindViewById <AppCompatSpinner>(Resource.Id.linksSpinner);

                player.PlayWhenReady = true;
                playerView.ControllerShowTimeoutMs = 3000;

                if (mediaStreams != null && mediaStreams.Count > 0)
                {
                    var titles = new List <string>()
                    {
                    };
                    mediaStreams.ForEach(a => titles.Add(a.StreamingQuality + " - MP4"));
                    linksSpinner.Adapter       = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerDropDownItem, titles);
                    linksSpinner.ItemSelected += LinksSpinner_ItemSelected;
                    linksSpinner.SetSelection(0);
                }
            }
            if (itemToPlay != null)
            {
                player.Prepare(CreateMediaSource(itemToPlay));
                playerView.KeepScreenOn = true;
            }
        }
Example #3
0
 /**
  * @param selector The track selector.
  * @param adaptiveVideoTrackSelectionFactory A factory for adaptive video {@link TrackSelection}s,
  *     or null if the selection helper should not support adaptive video.
  */
 public TrackSelectionHelper(MappingTrackSelector selector,
                             ITrackSelectionFactory adaptiveVideoTrackSelectionFactory)
 {
     _selector = selector;
     _adaptiveVideoTrackSelectionFactory = adaptiveVideoTrackSelectionFactory;
 }
Example #4
0
 static TrackSelectionHelper()
 {
     _fixedFactory  = new FixedTrackSelection.Factory();
     _randomFactory = new RandomTrackSelection.Factory();
 }
 /**
  * @param selector The track selector.
  * @param adaptiveTrackSelectionFactory A factory for adaptive {@link TrackSelection}s, or null
  *     if the selection helper should not support adaptive tracks.
  */
 public TrackSelectionHelper(MappingTrackSelector selector,
                             ITrackSelectionFactory adaptiveTrackSelectionFactory)
 {
     this.selector = selector;
     this.adaptiveTrackSelectionFactory = adaptiveTrackSelectionFactory;
 }