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; } }
/** * @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; }
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; }