public MediaSource create(Options options, Uri uri, MediaSourceEventListener mediaSourceEventListener, DefaultBandwidthMeter bandwidthMeter) { DefaultDataSourceFactory defaultDataSourceFactory = createDataSourceFactory(bandwidthMeter); switch (options.contentType()) { case HLS: return createHlsMediaSource(defaultDataSourceFactory, uri, mediaSourceEventListener); case H264: return createH264MediaSource(defaultDataSourceFactory, uri, mediaSourceEventListener); case DASH: return createDashMediaSource(defaultDataSourceFactory, uri, mediaSourceEventListener); default: throw new UnsupportedOperationException("Content type: " + options + " is not supported."); } }
MediaSource givenMediaSource() { MediaSource mediaSource = mock(MediaSource.class); given( mediaSourceFactory.create( OPTIONS, uri, mediaSourceEventListener, defaultBandwidthMeter ) ).willReturn(mediaSource); return mediaSource; } }
ExoPlayerTwoImpl create(Context context, DrmSessionCreator drmSessionCreator, boolean downgradeSecureDecoder) { MediaSourceFactory mediaSourceFactory = new MediaSourceFactory(context, handler, dataSourceFactory);
void loadVideo(PlayerSurfaceHolder playerSurfaceHolder, DrmSessionCreator drmSessionCreator, Uri uri, Options options, ExoPlayerForwarder forwarder, MediaCodecSelector mediaCodecSelector) { this.options = options; DefaultBandwidthMeter bandwidthMeter = bandwidthMeterCreator.create(options.maxInitialBitrate()); compositeTrackSelector = trackSelectorCreator.create(options, bandwidthMeter); exoPlayer = exoPlayerCreator.create( drmSessionCreator, forwarder.drmSessionEventListener(), mediaCodecSelector, compositeTrackSelector.trackSelector() ); rendererTypeRequester = rendererTypeRequesterCreator.createfrom(exoPlayer); exoPlayer.addListener(forwarder.exoPlayerEventListener()); exoPlayer.addAnalyticsListener(forwarder.analyticsListener()); exoPlayer.addVideoListener(forwarder.videoListener()); setMovieAudioAttributes(exoPlayer); MediaSource mediaSource = mediaSourceFactory.create( options, uri, forwarder.mediaSourceEventListener(), bandwidthMeter ); attachToSurface(playerSurfaceHolder); exoPlayer.prepare(mediaSource, RESET_POSITION, DO_NOT_RESET_STATE); }