From ab21f710bb6e1c1ed56bfa9154722a56315cb912 Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 6 Mar 2020 11:52:04 +0000 Subject: [PATCH] Add MediaSource.{add,remove}DrmEventListener Pre-work for issue:#6765 PiperOrigin-RevId: 299322086 --- .../exoplayer2/source/BaseMediaSource.java | 11 +++++++++++ .../android/exoplayer2/source/MediaSource.java | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/BaseMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/BaseMediaSource.java index a9e4041ba4..a71dac47c5 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/BaseMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/BaseMediaSource.java @@ -19,6 +19,7 @@ import android.os.Handler; import android.os.Looper; import androidx.annotation.Nullable; import com.google.android.exoplayer2.Timeline; +import com.google.android.exoplayer2.drm.DrmSessionEventListener; import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.util.Assertions; import java.util.ArrayList; @@ -140,6 +141,16 @@ public abstract class BaseMediaSource implements MediaSource { eventDispatcher.removeEventListener(eventListener); } + @Override + public final void addDrmEventListener(Handler handler, DrmSessionEventListener eventListener) { + eventDispatcher.addEventListener(handler, eventListener); + } + + @Override + public final void removeDrmEventListener(DrmSessionEventListener eventListener) { + eventDispatcher.removeEventListener(eventListener); + } + @Override public final void prepareSource( MediaSourceCaller caller, @Nullable TransferListener mediaTransferListener) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSource.java index f6dd4d79a4..479db2adc2 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSource.java @@ -19,6 +19,7 @@ import android.os.Handler; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Timeline; +import com.google.android.exoplayer2.drm.DrmSessionEventListener; import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.TransferListener; import java.io.IOException; @@ -228,6 +229,23 @@ public interface MediaSource { */ void removeEventListener(MediaSourceEventListener eventListener); + /** + * Adds a {@link DrmSessionEventListener} to the list of listeners which are notified of DRM + * events for this media source. + * + * @param handler A handler on the which listener events will be posted. + * @param eventListener The listener to be added. + */ + void addDrmEventListener(Handler handler, DrmSessionEventListener eventListener); + + /** + * Removes a {@link DrmSessionEventListener} from the list of listeners which are notified of DRM + * events for this media source. + * + * @param eventListener The listener to be removed. + */ + void removeDrmEventListener(DrmSessionEventListener eventListener); + /** * Returns the initial dummy timeline that is returned immediately when the real timeline is not * yet known, or null to let the player create an initial timeline.