Add MediaSource.{add,remove}DrmEventListener

Pre-work for issue:#6765

PiperOrigin-RevId: 299322086
This commit is contained in:
ibaker 2020-03-06 11:52:04 +00:00 committed by Oliver Woodman
parent c6bf6aae2a
commit ab21f710bb
2 changed files with 29 additions and 0 deletions

View file

@ -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) {

View file

@ -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.