diff --git a/library/src/main/java/com/google/android/exoplayer/drm/StreamingDrmSessionManager.java b/library/src/main/java/com/google/android/exoplayer/drm/StreamingDrmSessionManager.java index 7df46e0f31..7064e2107b 100644 --- a/library/src/main/java/com/google/android/exoplayer/drm/StreamingDrmSessionManager.java +++ b/library/src/main/java/com/google/android/exoplayer/drm/StreamingDrmSessionManager.java @@ -50,6 +50,12 @@ public class StreamingDrmSessionManager implements DrmSessionManager { */ public interface EventListener { + /** + * Invoked when DRM keys have been loaded. Depending on license setup, this might occur multiple + * times during playback. + */ + void onKeysLoaded(); + /** * Invoked when a drm error occurs. * @@ -386,6 +392,14 @@ public class StreamingDrmSessionManager implements DrmSessionManager { try { mediaDrm.provideKeyResponse(sessionId, (byte[]) response); state = STATE_OPENED_WITH_KEYS; + if (eventHandler != null && eventListener != null) { + eventHandler.post(new Runnable() { + @Override + public void run() { + eventListener.onKeysLoaded(); + } + }); + } } catch (Exception e) { onKeysError(e); }