Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
8077fe1b
authored
May 06, 2020
by
ibaker
Committed by
Oliver Woodman
May 06, 2020
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Add media period info to DrmSessionEventListener methods
Part of issue:#6765 PiperOrigin-RevId: 310143494
parent
34327bec
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
146 additions
and
90 deletions
library/core/src/main/java/com/google/android/exoplayer2/MediaSourceList.java
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionEventListener.java
library/core/src/main/java/com/google/android/exoplayer2/drm/OfflineLicenseHelper.java
library/core/src/main/java/com/google/android/exoplayer2/source/CompositeMediaSource.java
library/core/src/test/java/com/google/android/exoplayer2/util/MediaSourceEventDispatcherTest.java
library/core/src/main/java/com/google/android/exoplayer2/MediaSourceList.java
View file @
8077fe1b
...
...
@@ -702,45 +702,59 @@ import java.util.Set;
// DrmSessionEventListener implementation
@Override
public
void
onDrmSessionAcquired
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionAcquired
(),
DrmSessionEventListener
.
class
);
public
void
onDrmSessionAcquired
(
int
windowIndex
,
@Nullable
MediaSource
.
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmSessionAcquired
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmKeysLoaded
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysLoaded
(),
DrmSessionEventListener
.
class
);
public
void
onDrmKeysLoaded
(
int
windowIndex
,
@Nullable
MediaSource
.
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmKeysLoaded
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmSessionManagerError
(
Exception
error
)
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
error
),
DrmSessionEventListener
.
class
);
public
void
onDrmSessionManagerError
(
int
windowIndex
,
@Nullable
MediaSource
.
MediaPeriodId
mediaPeriodId
,
Exception
error
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
(
listener
,
innerWindowIndex
,
innerMediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
innerWindowIndex
,
innerMediaPeriodId
,
error
),
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmKeysRestored
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysRestored
(),
DrmSessionEventListener
.
class
);
public
void
onDrmKeysRestored
(
int
windowIndex
,
@Nullable
MediaSource
.
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmKeysRestored
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmKeysRemoved
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysRemoved
(),
DrmSessionEventListener
.
class
);
public
void
onDrmKeysRemoved
(
int
windowIndex
,
@Nullable
MediaSource
.
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmKeysRemoved
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmSessionReleased
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionReleased
(),
DrmSessionEventListener
.
class
);
public
void
onDrmSessionReleased
(
int
windowIndex
,
@Nullable
MediaSource
.
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmSessionReleased
,
DrmSessionEventListener
.
class
);
}
}
/** Updates the event dispatcher and returns whether the event should be dispatched. */
...
...
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java
View file @
8077fe1b
...
...
@@ -576,48 +576,49 @@ public class AnalyticsCollector
// DefaultDrmSessionManager.EventListener implementation.
@Override
public
final
void
onDrmSessionAcquired
()
{
EventTime
eventTime
=
generate
ReadingMediaPeriodEventTime
(
);
public
final
void
onDrmSessionAcquired
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
EventTime
eventTime
=
generate
MediaPeriodEventTime
(
windowIndex
,
mediaPeriodId
);
for
(
AnalyticsListener
listener
:
listeners
)
{
listener
.
onDrmSessionAcquired
(
eventTime
);
}
}
@Override
public
final
void
onDrmKeysLoaded
()
{
EventTime
eventTime
=
generate
ReadingMediaPeriodEventTime
(
);
public
final
void
onDrmKeysLoaded
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
EventTime
eventTime
=
generate
MediaPeriodEventTime
(
windowIndex
,
mediaPeriodId
);
for
(
AnalyticsListener
listener
:
listeners
)
{
listener
.
onDrmKeysLoaded
(
eventTime
);
}
}
@Override
public
final
void
onDrmSessionManagerError
(
Exception
error
)
{
EventTime
eventTime
=
generateReadingMediaPeriodEventTime
();
public
final
void
onDrmSessionManagerError
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
,
Exception
error
)
{
EventTime
eventTime
=
generateMediaPeriodEventTime
(
windowIndex
,
mediaPeriodId
);
for
(
AnalyticsListener
listener
:
listeners
)
{
listener
.
onDrmSessionManagerError
(
eventTime
,
error
);
}
}
@Override
public
final
void
onDrmKeysRestored
()
{
EventTime
eventTime
=
generate
ReadingMediaPeriodEventTime
(
);
public
final
void
onDrmKeysRestored
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
EventTime
eventTime
=
generate
MediaPeriodEventTime
(
windowIndex
,
mediaPeriodId
);
for
(
AnalyticsListener
listener
:
listeners
)
{
listener
.
onDrmKeysRestored
(
eventTime
);
}
}
@Override
public
final
void
onDrmKeysRemoved
()
{
EventTime
eventTime
=
generate
ReadingMediaPeriodEventTime
(
);
public
final
void
onDrmKeysRemoved
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
EventTime
eventTime
=
generate
MediaPeriodEventTime
(
windowIndex
,
mediaPeriodId
);
for
(
AnalyticsListener
listener
:
listeners
)
{
listener
.
onDrmKeysRemoved
(
eventTime
);
}
}
@Override
public
final
void
onDrmSessionReleased
()
{
EventTime
eventTime
=
generate
PlayingMediaPeriodEventTime
(
);
public
final
void
onDrmSessionReleased
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
EventTime
eventTime
=
generate
MediaPeriodEventTime
(
windowIndex
,
mediaPeriodId
);
for
(
AnalyticsListener
listener
:
listeners
)
{
listener
.
onDrmSessionReleased
(
eventTime
);
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java
View file @
8077fe1b
...
...
@@ -275,8 +275,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
// re-used or not.
if
(
eventDispatcher
!=
null
)
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionAcquired
(),
DrmSessionEventListener
.
class
);
DrmSessionEventListener:
:
onDrmSessionAcquired
,
DrmSessionEventListener
.
class
);
}
}
}
...
...
@@ -301,7 +300,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
}
releaseCallback
.
onSessionReleased
(
this
);
}
dispatchEvent
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionReleased
()
);
dispatchEvent
(
DrmSessionEventListener:
:
onDrmSessionReleased
);
if
(
eventDispatcher
!=
null
)
{
eventDispatchers
.
remove
(
eventDispatcher
);
}
...
...
@@ -326,7 +325,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
try
{
sessionId
=
mediaDrm
.
openSession
();
mediaCrypto
=
mediaDrm
.
createMediaCrypto
(
sessionId
);
dispatchEvent
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionAcquired
()
);
dispatchEvent
(
DrmSessionEventListener:
:
onDrmSessionAcquired
);
state
=
STATE_OPENED
;
Assertions
.
checkNotNull
(
sessionId
);
return
true
;
...
...
@@ -390,7 +389,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
onError
(
new
KeysExpiredException
());
}
else
{
state
=
STATE_OPENED_WITH_KEYS
;
dispatchEvent
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysRestored
()
);
dispatchEvent
(
DrmSessionEventListener:
:
onDrmKeysRestored
);
}
}
break
;
...
...
@@ -460,7 +459,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
byte
[]
responseData
=
(
byte
[])
response
;
if
(
mode
==
DefaultDrmSessionManager
.
MODE_RELEASE
)
{
mediaDrm
.
provideKeyResponse
(
Util
.
castNonNull
(
offlineLicenseKeySetId
),
responseData
);
dispatchEvent
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysRestored
()
);
dispatchEvent
(
DrmSessionEventListener:
:
onDrmKeysRestored
);
}
else
{
byte
[]
keySetId
=
mediaDrm
.
provideKeyResponse
(
sessionId
,
responseData
);
if
((
mode
==
DefaultDrmSessionManager
.
MODE_DOWNLOAD
...
...
@@ -471,7 +470,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
offlineLicenseKeySetId
=
keySetId
;
}
state
=
STATE_OPENED_WITH_KEYS
;
dispatchEvent
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysLoaded
()
);
dispatchEvent
(
DrmSessionEventListener:
:
onDrmKeysLoaded
);
}
}
catch
(
Exception
e
)
{
onKeysError
(
e
);
...
...
@@ -495,7 +494,9 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
private
void
onError
(
final
Exception
e
)
{
lastException
=
new
DrmSessionException
(
e
);
dispatchEvent
((
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
e
));
dispatchEvent
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
windowIndex
,
mediaPeriodId
,
e
));
if
(
state
!=
STATE_OPENED_WITH_KEYS
)
{
state
=
STATE_ERROR
;
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
View file @
8077fe1b
...
...
@@ -489,7 +489,8 @@ public class DefaultDrmSessionManager implements DrmSessionManager {
final
MissingSchemeDataException
error
=
new
MissingSchemeDataException
(
uuid
);
if
(
eventDispatcher
!=
null
)
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
error
),
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
windowIndex
,
mediaPeriodId
,
error
),
DrmSessionEventListener
.
class
);
}
return
new
ErrorStateDrmSession
(
new
DrmSessionException
(
error
));
...
...
library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionEventListener.java
View file @
8077fe1b
...
...
@@ -15,16 +15,28 @@
*/
package
com
.
google
.
android
.
exoplayer2
.
drm
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.Player
;
import
com.google.android.exoplayer2.source.MediaSource.MediaPeriodId
;
/** Listener of {@link DrmSessionManager} events. */
public
interface
DrmSessionEventListener
{
/** Called each time a drm session is acquired. */
default
void
onDrmSessionAcquired
()
{}
/**
* Called each time a drm session is acquired.
*
* @param windowIndex The window index in the timeline this media period belongs to.
* @param mediaPeriodId The {@link MediaPeriodId} associated with the drm session.
*/
default
void
onDrmSessionAcquired
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{}
/** Called each time keys are loaded. */
default
void
onDrmKeysLoaded
()
{}
/**
* Called each time keys are loaded.
*
* @param windowIndex The window index in the timeline this media period belongs to.
* @param mediaPeriodId The {@link MediaPeriodId} associated with the drm session.
*/
default
void
onDrmKeysLoaded
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{}
/**
* Called when a drm error occurs.
...
...
@@ -36,16 +48,34 @@ public interface DrmSessionEventListener {
* such behavior). This method is called to provide the application with an opportunity to log the
* error if it wishes to do so.
*
* @param windowIndex The window index in the timeline this media period belongs to.
* @param mediaPeriodId The {@link MediaPeriodId} associated with the drm session.
* @param error The corresponding exception.
*/
default
void
onDrmSessionManagerError
(
Exception
error
)
{}
default
void
onDrmSessionManagerError
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
,
Exception
error
)
{}
/** Called each time offline keys are restored. */
default
void
onDrmKeysRestored
()
{}
/**
* Called each time offline keys are restored.
*
* @param windowIndex The window index in the timeline this media period belongs to.
* @param mediaPeriodId The {@link MediaPeriodId} associated with the drm session.
*/
default
void
onDrmKeysRestored
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{}
/** Called each time offline keys are removed. */
default
void
onDrmKeysRemoved
()
{}
/**
* Called each time offline keys are removed.
*
* @param windowIndex The window index in the timeline this media period belongs to.
* @param mediaPeriodId The {@link MediaPeriodId} associated with the drm session.
*/
default
void
onDrmKeysRemoved
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{}
/** Called each time a drm session is released. */
default
void
onDrmSessionReleased
()
{}
/**
* Called each time a drm session is released.
*
* @param windowIndex The window index in the timeline this media period belongs to.
* @param mediaPeriodId The {@link MediaPeriodId} associated with the drm session.
*/
default
void
onDrmSessionReleased
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{}
}
library/core/src/main/java/com/google/android/exoplayer2/drm/OfflineLicenseHelper.java
View file @
8077fe1b
...
...
@@ -24,6 +24,7 @@ import androidx.annotation.Nullable;
import
androidx.annotation.RequiresApi
;
import
com.google.android.exoplayer2.drm.DefaultDrmSessionManager.Mode
;
import
com.google.android.exoplayer2.drm.DrmSession.DrmSessionException
;
import
com.google.android.exoplayer2.source.MediaSource.MediaPeriodId
;
import
com.google.android.exoplayer2.upstream.HttpDataSource
;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.MediaSourceEventDispatcher
;
...
...
@@ -156,22 +157,23 @@ public final class OfflineLicenseHelper {
DrmSessionEventListener
eventListener
=
new
DrmSessionEventListener
()
{
@Override
public
void
onDrmKeysLoaded
()
{
public
void
onDrmKeysLoaded
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
conditionVariable
.
open
();
}
@Override
public
void
onDrmSessionManagerError
(
Exception
e
)
{
public
void
onDrmSessionManagerError
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
,
Exception
e
)
{
conditionVariable
.
open
();
}
@Override
public
void
onDrmKeysRestored
()
{
public
void
onDrmKeysRestored
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
conditionVariable
.
open
();
}
@Override
public
void
onDrmKeysRemoved
()
{
public
void
onDrmKeysRemoved
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
conditionVariable
.
open
();
}
};
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/CompositeMediaSource.java
View file @
8077fe1b
...
...
@@ -324,45 +324,54 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
// DrmSessionEventListener implementation
@Override
public
void
onDrmSessionAcquired
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionAcquired
(),
DrmSessionEventListener
.
class
);
public
void
onDrmSessionAcquired
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmSessionAcquired
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmKeysLoaded
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysLoaded
(),
DrmSessionEventListener
.
class
);
public
void
onDrmKeysLoaded
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmKeysLoaded
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmSessionManagerError
(
Exception
error
)
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
error
),
DrmSessionEventListener
.
class
);
public
void
onDrmSessionManagerError
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
,
Exception
error
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
(
listener
,
innerWindowIndex
,
innerMediaPeriodId
)
->
listener
.
onDrmSessionManagerError
(
innerWindowIndex
,
innerMediaPeriodId
,
error
),
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmKeysRestored
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysRestored
(),
DrmSessionEventListener
.
class
);
public
void
onDrmKeysRestored
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmKeysRestored
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmKeysRemoved
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysRemoved
(),
DrmSessionEventListener
.
class
);
public
void
onDrmKeysRemoved
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmKeysRemoved
,
DrmSessionEventListener
.
class
);
}
}
@Override
public
void
onDrmSessionReleased
()
{
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmSessionReleased
(),
DrmSessionEventListener
.
class
);
public
void
onDrmSessionReleased
(
int
windowIndex
,
@Nullable
MediaPeriodId
mediaPeriodId
)
{
if
(
maybeUpdateEventDispatcher
(
windowIndex
,
mediaPeriodId
))
{
eventDispatcher
.
dispatch
(
DrmSessionEventListener:
:
onDrmSessionReleased
,
DrmSessionEventListener
.
class
);
}
}
/** Updates the event dispatcher and returns whether the event should be dispatched. */
...
...
library/core/src/test/java/com/google/android/exoplayer2/util/MediaSourceEventDispatcherTest.java
View file @
8077fe1b
...
...
@@ -100,11 +100,10 @@ public class MediaSourceEventDispatcherTest {
eventDispatcher
.
dispatch
(
MediaSourceEventListener:
:
onMediaPeriodCreated
,
MediaSourceEventListener
.
class
);
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysLoaded
(),
DrmSessionEventListener
.
class
);
DrmSessionEventListener:
:
onDrmKeysLoaded
,
DrmSessionEventListener
.
class
);
verify
(
mediaAndDrmEventListener
).
onMediaPeriodCreated
(
WINDOW_INDEX
,
MEDIA_PERIOD_ID
);
verify
(
mediaAndDrmEventListener
).
onDrmKeysLoaded
();
verify
(
mediaAndDrmEventListener
).
onDrmKeysLoaded
(
WINDOW_INDEX
,
MEDIA_PERIOD_ID
);
}
// If a listener is added that implements multiple types, it should only receive events for the
...
...
@@ -119,11 +118,10 @@ public class MediaSourceEventDispatcherTest {
eventDispatcher
.
dispatch
(
MediaSourceEventListener:
:
onMediaPeriodCreated
,
MediaSourceEventListener
.
class
);
eventDispatcher
.
dispatch
(
(
listener
,
windowIndex
,
mediaPeriodId
)
->
listener
.
onDrmKeysLoaded
(),
DrmSessionEventListener
.
class
);
DrmSessionEventListener:
:
onDrmKeysLoaded
,
DrmSessionEventListener
.
class
);
verify
(
mediaAndDrmEventListener
).
onMediaPeriodCreated
(
WINDOW_INDEX
,
MEDIA_PERIOD_ID
);
verify
(
mediaAndDrmEventListener
,
never
()).
onDrmKeysLoaded
();
verify
(
mediaAndDrmEventListener
,
never
()).
onDrmKeysLoaded
(
WINDOW_INDEX
,
MEDIA_PERIOD_ID
);
}
@Test
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment