public async Task StartPlaying(string url) { var context = Android.App.Application.Context.ApplicationContext; var player = new SimpleExoPlayer.Builder(context).Build(); var datasourceFactory = new DefaultDataSourceFactory(context, Util.GetUserAgent(context, "test")); var mediaSource = new ProgressiveMediaSource.Factory(datasourceFactory).CreateMediaSource(Uri.Parse("https://ia800605.us.archive.org/32/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3")); player.Prepare(mediaSource); player.PlayWhenReady = true; }
private IMediaSource GetMediaSourceFromUrl(Uri uri, string extension, string tag) { var BandwidthMeter = DefaultBandwidthMeter.GetSingletonInstance(ActivityContext); //DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(ActivityContext, Util.GetUserAgent(ActivityContext, AppSettings.ApplicationName), mBandwidthMeter); var buildHttpDataSourceFactory = new DefaultDataSourceFactory(ActivityContext, BandwidthMeter, new DefaultHttpDataSourceFactory(Util.GetUserAgent(ActivityContext, AppSettings.ApplicationName))); var buildHttpDataSourceFactoryNull = new DefaultDataSourceFactory(ActivityContext, BandwidthMeter, new DefaultHttpDataSourceFactory(Util.GetUserAgent(ActivityContext, AppSettings.ApplicationName))); int type = Util.InferContentType(uri, extension); try { IMediaSource src; switch (type) { case C.TypeSs: src = new SsMediaSource.Factory(new DefaultSsChunkSource.Factory(buildHttpDataSourceFactory), buildHttpDataSourceFactoryNull).SetTag(tag).SetDrmSessionManager(IDrmSessionManager.DummyDrmSessionManager).CreateMediaSource(uri); break; case C.TypeDash: src = new DashMediaSource.Factory(new DefaultDashChunkSource.Factory(buildHttpDataSourceFactory), buildHttpDataSourceFactoryNull).SetTag(tag).SetDrmSessionManager(IDrmSessionManager.DummyDrmSessionManager).CreateMediaSource(uri); break; case C.TypeHls: DefaultHlsExtractorFactory defaultHlsExtractorFactory = new DefaultHlsExtractorFactory(DefaultTsPayloadReaderFactory.FlagAllowNonIdrKeyframes, true); src = new HlsMediaSource.Factory(buildHttpDataSourceFactory).SetTag(tag).SetExtractorFactory(defaultHlsExtractorFactory).CreateMediaSource(uri); break; case C.TypeOther: default: src = new ProgressiveMediaSource.Factory(buildHttpDataSourceFactory).SetTag(tag).CreateMediaSource(uri); break; } return(src); } catch (Exception e) { Methods.DisplayReportResultTrack(e); try { return(new ProgressiveMediaSource.Factory(buildHttpDataSourceFactory).SetTag(tag).CreateMediaSource(uri)); } catch (Exception exception) { Methods.DisplayReportResultTrack(exception); return(null !); } } }