/** * Signals that the {@link DrmInitData} passed to {@link #acquireSession} does not contain does * not contain scheme data for the required UUID. */ public static final class MissingSchemeDataException extends Exception { private MissingSchemeDataException(UUID uuid) { super("Media does not support uuid: " + uuid); } }
/** * @deprecated Use {@link #DefaultDrmSessionManager(UUID, ExoMediaDrm, MediaDrmCallback, HashMap)} * and {@link #addListener(Handler, DefaultDrmSessionEventListener)}. */ @Deprecated public DefaultDrmSessionManager( UUID uuid, ExoMediaDrm<T> mediaDrm, MediaDrmCallback callback, HashMap<String, String> optionalKeyRequestParameters, Handler eventHandler, DefaultDrmSessionEventListener eventListener) { this(uuid, mediaDrm, callback, optionalKeyRequestParameters); if (eventHandler != null && eventListener != null) { addListener(eventHandler, eventListener); } }
/** * @deprecated Use {@link #DefaultDrmSessionManager(UUID, ExoMediaDrm, MediaDrmCallback, HashMap, * boolean)} and {@link #addListener(Handler, DefaultDrmSessionEventListener)}. */ @Deprecated public DefaultDrmSessionManager( UUID uuid, ExoMediaDrm<T> mediaDrm, MediaDrmCallback callback, HashMap<String, String> optionalKeyRequestParameters, Handler eventHandler, DefaultDrmSessionEventListener eventListener, boolean multiSession) { this(uuid, mediaDrm, callback, optionalKeyRequestParameters, multiSession); if (eventHandler != null && eventListener != null) { addListener(eventHandler, eventListener); } }
/** * @deprecated Use {@link #newWidevineInstance(MediaDrmCallback, HashMap)} and {@link * #addListener(Handler, DefaultDrmSessionEventListener)}. */ @Deprecated public static DefaultDrmSessionManager<FrameworkMediaCrypto> newWidevineInstance( MediaDrmCallback callback, HashMap<String, String> optionalKeyRequestParameters, Handler eventHandler, DefaultDrmSessionEventListener eventListener) throws UnsupportedDrmException { DefaultDrmSessionManager<FrameworkMediaCrypto> drmSessionManager = newWidevineInstance(callback, optionalKeyRequestParameters); if (eventHandler != null && eventListener != null) { drmSessionManager.addListener(eventHandler, eventListener); } return drmSessionManager; }
/** * @deprecated Use {@link #newPlayReadyInstance(MediaDrmCallback, String)} and {@link * #addListener(Handler, DefaultDrmSessionEventListener)}. */ @Deprecated public static DefaultDrmSessionManager<FrameworkMediaCrypto> newPlayReadyInstance( MediaDrmCallback callback, String customData, Handler eventHandler, DefaultDrmSessionEventListener eventListener) throws UnsupportedDrmException { DefaultDrmSessionManager<FrameworkMediaCrypto> drmSessionManager = newPlayReadyInstance(callback, customData); if (eventHandler != null && eventListener != null) { drmSessionManager.addListener(eventHandler, eventListener); } return drmSessionManager; }
/** * @deprecated Use {@link #newFrameworkInstance(UUID, MediaDrmCallback, HashMap)} and {@link * #addListener(Handler, DefaultDrmSessionEventListener)}. */ @Deprecated public static DefaultDrmSessionManager<FrameworkMediaCrypto> newFrameworkInstance( UUID uuid, MediaDrmCallback callback, HashMap<String, String> optionalKeyRequestParameters, Handler eventHandler, DefaultDrmSessionEventListener eventListener) throws UnsupportedDrmException { DefaultDrmSessionManager<FrameworkMediaCrypto> drmSessionManager = newFrameworkInstance(uuid, callback, optionalKeyRequestParameters); if (eventHandler != null && eventListener != null) { drmSessionManager.addListener(eventHandler, eventListener); } return drmSessionManager; }
drmSessionManager = new DefaultDrmSessionManager<>(uuid, mediaDrm, callback, optionalKeyRequestParameters); drmSessionManager.addListener(new Handler(handlerThread.getLooper()), eventListener);
/** @deprecated Use {@link com.google.android.exoplayer2.video.VideoListener}. */ @Deprecated public interface VideoListener extends com.google.android.exoplayer2.video.VideoListener {}
protected void setupDamSessionManagerAnalytics(DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) { if (drmSessionManager instanceof DefaultDrmSessionManager) { ((DefaultDrmSessionManager) drmSessionManager).addListener(mainHandler, analyticsCollector); } }
/** * Generates the {@link DrmSessionManager} to use with the {@link RendererProvider}. This will * return null on API's < {@value Build.VERSION_CODES#JELLY_BEAN_MR2} * * @return The {@link DrmSessionManager} to use or <code>null</code> */ @Nullable protected DrmSessionManager<FrameworkMediaCrypto> generateDrmSessionManager() { // DRM is only supported on API 18 + in the ExoPlayer if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) { return null; } // Widevine will capture the majority of use cases however playready is supported on all AndroidTV devices UUID uuid = C.WIDEVINE_UUID; try { DefaultDrmSessionManager<FrameworkMediaCrypto> sessionManager = new DefaultDrmSessionManager<>(uuid, FrameworkMediaDrm.newInstance(uuid), new DelegatedMediaDrmCallback(), null); sessionManager.addListener(mainHandler, capabilitiesListener); return sessionManager; } catch (Exception e) { Log.d(TAG, "Unable to create a DrmSessionManager due to an exception", e); return null; } }
@Override public DrmSessionManager<FrameworkMediaCrypto> create(DefaultDrmSessionEventListener eventListener) { FrameworkMediaDrm frameworkMediaDrm = frameworkMediaDrmCreator.create(WIDEVINE_MODULAR_UUID); DefaultDrmSessionManager<FrameworkMediaCrypto> defaultDrmSessionManager = new DefaultDrmSessionManager<>( WIDEVINE_MODULAR_UUID, frameworkMediaDrm, mediaDrmCallback, NO_OPTIONAL_PARAMETERS ); defaultDrmSessionManager.removeListener(eventListener); defaultDrmSessionManager.addListener(handler, eventListener); return defaultDrmSessionManager; } }