/** * Creates an {@link ExoPlayer} instance. * * @param renderers The {@link Renderer}s that will be used by the instance. * @param trackSelector The {@link TrackSelector} that will be used by the instance. */ public static ExoPlayer newInstance(Renderer[] renderers, TrackSelector trackSelector) { return newInstance(renderers, trackSelector, new DefaultLoadControl()); }
/** * Creates a {@link SimpleExoPlayer} instance. * * @param context A {@link Context}. * @param renderersFactory A factory for creating {@link Renderer}s to be used by the instance. * @param trackSelector The {@link TrackSelector} that will be used by the instance. */ public static SimpleExoPlayer newSimpleInstance( Context context, RenderersFactory renderersFactory, TrackSelector trackSelector) { return newSimpleInstance(context, renderersFactory, trackSelector, new DefaultLoadControl()); }
/** * Creates a {@link SimpleExoPlayer} instance. * * @param renderersFactory A factory for creating {@link Renderer}s to be used by the instance. * @param trackSelector The {@link TrackSelector} that will be used by the instance. * @deprecated Use {@link #newSimpleInstance(Context, RenderersFactory, TrackSelector)}. The use * of {@link SimpleExoPlayer#setAudioAttributes(AudioAttributes, boolean)} to manage audio * focus will be unavailable for the {@link SimpleExoPlayer} returned by this method. */ @Deprecated @SuppressWarnings("nullness:argument.type.incompatible") public static SimpleExoPlayer newSimpleInstance( RenderersFactory renderersFactory, TrackSelector trackSelector) { return newSimpleInstance( /* context= */ null, renderersFactory, trackSelector, new DefaultLoadControl()); }
/** * Creates a {@link SimpleExoPlayer} instance. * * @param context A {@link Context}. * @param renderersFactory A factory for creating {@link Renderer}s to be used by the instance. * @param trackSelector The {@link TrackSelector} that will be used by the instance. * @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance * will not be used for DRM protected playbacks. */ public static SimpleExoPlayer newSimpleInstance( Context context, RenderersFactory renderersFactory, TrackSelector trackSelector, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) { return newSimpleInstance( context, renderersFactory, trackSelector, new DefaultLoadControl(), drmSessionManager); }
private LoadController(final int initialPlaybackBufferMs, final int minimumPlaybackbufferMs, final int optimalPlaybackBufferMs) { this.initialPlaybackBufferUs = initialPlaybackBufferMs * 1000; final DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); internalLoadControl = new DefaultLoadControl(allocator, /*minBufferMs=*/minimumPlaybackbufferMs, /*maxBufferMs=*/optimalPlaybackBufferMs, /*bufferForPlaybackMs=*/initialPlaybackBufferMs, /*bufferForPlaybackAfterRebufferMs=*/initialPlaybackBufferMs, DEFAULT_TARGET_BUFFER_BYTES, DEFAULT_PRIORITIZE_TIME_OVER_SIZE_THRESHOLDS); }
/** Creates a {@link DefaultLoadControl}. */ public DefaultLoadControl createDefaultLoadControl() { createDefaultLoadControlCalled = true; if (allocator == null) { allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); } return new DefaultLoadControl( allocator, minBufferMs, maxBufferMs, bufferForPlaybackMs, bufferForPlaybackAfterRebufferMs, targetBufferBytes, prioritizeTimeOverSizeThresholds, priorityTaskManager, backBufferDurationMs, retainBackBufferFromKeyframe); } }
@SuppressWarnings("unused") protected SimpleExoPlayer buildExoPlayer( HostActivity host, Surface surface, MappingTrackSelector trackSelector, DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) { RenderersFactory renderersFactory = new DefaultRenderersFactory( host, DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF, /* allowedVideoJoiningTimeMs= */ 0); SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance( host, renderersFactory, trackSelector, new DefaultLoadControl(), drmSessionManager); player.setVideoSurface(surface); return player; }
@Override protected SimpleExoPlayer buildExoPlayer( HostActivity host, Surface surface, MappingTrackSelector trackSelector, DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) { SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance( host, new DebugRenderersFactory(host), trackSelector, new DefaultLoadControl(), drmSessionManager); player.setVideoSurface(surface); return player; }
@SuppressWarnings("unused") protected SimpleExoPlayer buildExoPlayer( HostActivity host, Surface surface, MappingTrackSelector trackSelector, DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) { RenderersFactory renderersFactory = new DefaultRenderersFactory( host, DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF, /* allowedVideoJoiningTimeMs= */ 0); SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance( host, renderersFactory, trackSelector, new DefaultLoadControl(), drmSessionManager); player.setVideoSurface(surface); return player; }
new DefaultTrackSelector(videoTrackSelectionFactory); LoadControl loadControl = new DefaultLoadControl(new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE), 360000, 600000, 1000, 5000, C.LENGTH_UNSET,
@Override public void run() { mTrackSelector = new DefaultTrackSelector(); mEventLogger = new EventLogger(mTrackSelector); boolean preferExtensionDecoders = true; boolean useExtensionRenderers = true;//是否开启扩展 @DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode = useExtensionRenderers ? (preferExtensionDecoders ? DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER : DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON) : DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF; rendererFactory = new DefaultRenderersFactory(mAppContext, extensionRendererMode); DefaultLoadControl loadControl = new DefaultLoadControl(); mInternalPlayer = ExoPlayerFactory.newSimpleInstance(mAppContext, rendererFactory, mTrackSelector, loadControl, null, Looper.getMainLooper()); mInternalPlayer.addListener(IjkExo2MediaPlayer.this); mInternalPlayer.addAnalyticsListener(IjkExo2MediaPlayer.this); mInternalPlayer.addListener(mEventLogger); if (mSpeedPlaybackParameters != null) { mInternalPlayer.setPlaybackParameters(mSpeedPlaybackParameters); } if (mSurface != null) mInternalPlayer.setVideoSurface(mSurface); mInternalPlayer.prepare(mMediaSource); mInternalPlayer.setPlayWhenReady(false); } }
loadControl = new DefaultLoadControl();
loadControl = new DefaultLoadControl();
public ExoMediaPlayer(@NonNull Context context) { this.context = context; bufferRepeater.setRepeaterDelay(BUFFER_REPEAT_DELAY); bufferRepeater.setRepeatListener(new BufferRepeatListener()); mainHandler = new Handler(); ComponentListener componentListener = new ComponentListener(); RendererProvider rendererProvider = new RendererProvider(context, mainHandler, componentListener, componentListener, componentListener, componentListener); DrmSessionManager<FrameworkMediaCrypto> drmSessionManager = generateDrmSessionManager(); rendererProvider.setDrmSessionManager(drmSessionManager); renderers = rendererProvider.generate(); adaptiveTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter); trackSelector = new DefaultTrackSelector(adaptiveTrackSelectionFactory); LoadControl loadControl = ExoMedia.Data.loadControl != null ? ExoMedia.Data.loadControl : new DefaultLoadControl(); player = ExoPlayerFactory.newInstance(renderers.toArray(new Renderer[renderers.size()]), trackSelector, loadControl); player.addListener(this); analyticsCollector = new AnalyticsCollector.Factory().createAnalyticsCollector(player, Clock.DEFAULT); player.addListener(analyticsCollector); setupDamSessionManagerAnalytics(drmSessionManager); }
DefaultLoadControl loadControl = new DefaultLoadControl(new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE), DefaultLoadControl.DEFAULT_MIN_BUFFER_MS * 2, DefaultLoadControl.DEFAULT_MAX_BUFFER_MS * 2,
public VideoPlayer(Context context) { BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(); TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter); TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); LoadControl loadControl = new DefaultLoadControl(); player = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(context), trackSelector, loadControl); player.setRepeatMode(Player.REPEAT_MODE_ONE); player.addListener(this); progressHandler = new Handler(); }
@Override public void init(@NonNull final Context context) { final TrackSelector trackSelector = new DefaultTrackSelector(); exoPlayer = ExoPlayerFactory.newSimpleInstance( new DefaultRenderersFactory(context), trackSelector, new DefaultLoadControl()); exoPlayer.addListener(mEventListener); exoPlayer.addAudioDebugListener(mAudioRendererEventListener); dataSourceFactory = new DefaultDataSourceFactory(context, Util.getUserAgent(context, "Painless Music Player")); }
private void setUpAudioPlayer() { audioPlayer = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(this), new DefaultTrackSelector(), new DefaultLoadControl()); audioPlayer.addListener(this); audioPlayer.setPlayWhenReady(true); audioPlayer.setVolume(1.0f); }
public ExoPlayerView(Context context, AttributeSet attrs) { super(context, attrs); if (isInEditMode()) { return; } player = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(context), new DefaultTrackSelector(), new DefaultLoadControl()); player.setVideoTextureView(this); player.addVideoListener(this); player.addListener(this); }
/** * 初始化player */ private void initPlayer() { BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(); TrackSelection.Factory videoTackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter); TrackSelector trackSelector = new DefaultTrackSelector(videoTackSelectionFactory); DefaultLoadControl loadControl = new DefaultLoadControl(new DefaultAllocator(true, 65536), 3000, 5000, 2500L, 5000L); //2.创建ExoPlayer mVideoPlayer = ExoPlayerFactory.newSimpleInstance(getActivity(), trackSelector, loadControl); mVideoView.setPlayer(mVideoPlayer); mVideoPlayer.addListener(this); }