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
cf80c4d9
authored
Dec 08, 2014
by
Oliver Woodman
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Allow passing of optional parameters in MediaDrm key requests.
parent
01151c9c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
5 deletions
demo/src/main/java/com/google/android/exoplayer/demo/full/player/DashRendererBuilder.java
demo/src/main/java/com/google/android/exoplayer/demo/full/player/SmoothStreamingRendererBuilder.java
library/src/main/java/com/google/android/exoplayer/drm/StreamingDrmSessionManager.java
demo/src/main/java/com/google/android/exoplayer/demo/full/player/DashRendererBuilder.java
View file @
cf80c4d9
...
...
@@ -279,8 +279,8 @@ public class DashRendererBuilder implements RendererBuilder,
public
static
Pair
<
DrmSessionManager
,
Boolean
>
getDrmSessionManagerData
(
DemoPlayer
player
,
MediaDrmCallback
drmCallback
)
throws
UnsupportedSchemeException
{
StreamingDrmSessionManager
streamingDrmSessionManager
=
new
StreamingDrmSessionManager
(
DemoUtil
.
WIDEVINE_UUID
,
player
.
getPlaybackLooper
(),
drmCallback
,
player
.
getMainHandler
()
,
player
);
DemoUtil
.
WIDEVINE_UUID
,
player
.
getPlaybackLooper
(),
drmCallback
,
null
,
player
.
getMainHandler
(),
player
);
return
Pair
.
create
((
DrmSessionManager
)
streamingDrmSessionManager
,
getWidevineSecurityLevel
(
streamingDrmSessionManager
)
==
SECURITY_LEVEL_1
);
}
...
...
demo/src/main/java/com/google/android/exoplayer/demo/full/player/SmoothStreamingRendererBuilder.java
View file @
cf80c4d9
...
...
@@ -252,7 +252,7 @@ public class SmoothStreamingRendererBuilder implements RendererBuilder,
public
static
DrmSessionManager
getDrmSessionManager
(
UUID
uuid
,
DemoPlayer
player
,
MediaDrmCallback
drmCallback
)
throws
UnsupportedSchemeException
{
return
new
StreamingDrmSessionManager
(
uuid
,
player
.
getPlaybackLooper
(),
drmCallback
,
return
new
StreamingDrmSessionManager
(
uuid
,
player
.
getPlaybackLooper
(),
drmCallback
,
null
,
player
.
getMainHandler
(),
player
);
}
...
...
library/src/main/java/com/google/android/exoplayer/drm/StreamingDrmSessionManager.java
View file @
cf80c4d9
...
...
@@ -30,6 +30,7 @@ import android.os.HandlerThread;
import
android.os.Looper
;
import
android.os.Message
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.UUID
;
...
...
@@ -61,6 +62,7 @@ public class StreamingDrmSessionManager implements DrmSessionManager {
private
final
Handler
eventHandler
;
private
final
EventListener
eventListener
;
private
final
MediaDrm
mediaDrm
;
private
final
HashMap
<
String
,
String
>
optionalKeyRequestParameters
;
/* package */
final
MediaDrmHandler
mediaDrmHandler
;
/* package */
final
MediaDrmCallback
callback
;
...
...
@@ -80,19 +82,32 @@ public class StreamingDrmSessionManager implements DrmSessionManager {
private
byte
[]
sessionId
;
/**
* @deprecated Use the other constructor, passing null as {@code optionalKeyRequestParameters}.
*/
@Deprecated
public
StreamingDrmSessionManager
(
UUID
uuid
,
Looper
playbackLooper
,
MediaDrmCallback
callback
,
Handler
eventHandler
,
EventListener
eventListener
)
throws
UnsupportedSchemeException
{
this
(
uuid
,
playbackLooper
,
callback
,
null
,
eventHandler
,
eventListener
);
}
/**
* @param uuid The UUID of the drm scheme.
* @param playbackLooper The looper associated with the media playback thread. Should usually be
* obtained using {@link com.google.android.exoplayer.ExoPlayer#getPlaybackLooper()}.
* @param callback Performs key and provisioning requests.
* @param optionalKeyRequestParameters An optional map of parameters to pass as the last argument
* to {@link MediaDrm#getKeyRequest(byte[], byte[], String, int, HashMap)}. May be null.
* @param eventHandler A handler to use when delivering events to {@code eventListener}. May be
* null if delivery of events is not required.
* @param eventListener A listener of events. May be null if delivery of events is not required.
* @throws UnsupportedSchemeException If the specified DRM scheme is not supported.
*/
public
StreamingDrmSessionManager
(
UUID
uuid
,
Looper
playbackLooper
,
MediaDrmCallback
callback
,
Handler
eventHandler
,
EventListener
eventListener
)
throws
UnsupportedSchemeException
{
HashMap
<
String
,
String
>
optionalKeyRequestParameters
,
Handler
eventHandler
,
EventListener
eventListener
)
throws
UnsupportedSchemeException
{
this
.
uuid
=
uuid
;
this
.
callback
=
callback
;
this
.
optionalKeyRequestParameters
=
optionalKeyRequestParameters
;
this
.
eventHandler
=
eventHandler
;
this
.
eventListener
=
eventListener
;
mediaDrm
=
new
MediaDrm
(
uuid
);
...
...
@@ -250,7 +265,7 @@ public class StreamingDrmSessionManager implements DrmSessionManager {
KeyRequest
keyRequest
;
try
{
keyRequest
=
mediaDrm
.
getKeyRequest
(
sessionId
,
schemePsshData
,
mimeType
,
MediaDrm
.
KEY_TYPE_STREAMING
,
null
);
MediaDrm
.
KEY_TYPE_STREAMING
,
optionalKeyRequestParameters
);
postRequestHandler
.
obtainMessage
(
MSG_KEYS
,
keyRequest
).
sendToTarget
();
}
catch
(
NotProvisionedException
e
)
{
onKeysError
(
e
);
...
...
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