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
13827186
authored
Sep 17, 2021
by
ibaker
Committed by
Christos Tsilopoulos
Sep 17, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Use the new MediaItem.Builder#setDrmConfiguration method
PiperOrigin-RevId: 397290953
parent
73aece63
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
92 additions
and
64 deletions
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
docs/media-items.md
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverterTest.java
library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java
library/core/src/test/java/com/google/android/exoplayer2/source/DefaultDrmSessionManagerProviderTest.java
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java
View file @
13827186
...
@@ -65,8 +65,10 @@ import java.util.List;
...
@@ -65,8 +65,10 @@ import java.util.List;
.
setMediaMetadata
(
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cenc: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cenc: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setMimeType
(
MIME_TYPE_DASH
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmConfiguration
(
.
setDrmLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
)
.
setLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
.
build
())
.
build
());
.
build
());
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
...
@@ -74,8 +76,10 @@ import java.util.List;
...
@@ -74,8 +76,10 @@ import java.util.List;
.
setMediaMetadata
(
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbc1: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbc1: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setMimeType
(
MIME_TYPE_DASH
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmConfiguration
(
.
setDrmLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
)
.
setLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
.
build
())
.
build
());
.
build
());
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
...
@@ -83,8 +87,10 @@ import java.util.List;
...
@@ -83,8 +87,10 @@ import java.util.List;
.
setMediaMetadata
(
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbcs: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbcs: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setMimeType
(
MIME_TYPE_DASH
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmConfiguration
(
.
setDrmLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
)
.
setLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
.
build
())
.
build
());
.
build
());
SAMPLES
=
Collections
.
unmodifiableList
(
samples
);
SAMPLES
=
Collections
.
unmodifiableList
(
samples
);
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java
View file @
13827186
...
@@ -26,12 +26,12 @@ import com.google.android.exoplayer2.MediaItem;
...
@@ -26,12 +26,12 @@ import com.google.android.exoplayer2.MediaItem;
import
com.google.android.exoplayer2.MediaMetadata
;
import
com.google.android.exoplayer2.MediaMetadata
;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.common.collect.ImmutableList
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.UUID
;
/** Util to read from and populate an intent. */
/** Util to read from and populate an intent. */
public
class
IntentUtil
{
public
class
IntentUtil
{
...
@@ -162,16 +162,20 @@ public class IntentUtil {
...
@@ -162,16 +162,20 @@ public class IntentUtil {
headers
.
put
(
keyRequestPropertiesArray
[
i
],
keyRequestPropertiesArray
[
i
+
1
]);
headers
.
put
(
keyRequestPropertiesArray
[
i
],
keyRequestPropertiesArray
[
i
+
1
]);
}
}
}
}
builder
@Nullable
UUID
drmUuid
=
Util
.
getDrmUuid
(
Util
.
castNonNull
(
drmSchemeExtra
));
.
setDrmUuid
(
Util
.
getDrmUuid
(
Util
.
castNonNull
(
drmSchemeExtra
)))
if
(
drmUuid
!=
null
)
{
.
setDrmLicenseUri
(
intent
.
getStringExtra
(
DRM_LICENSE_URI_EXTRA
+
extrasKeySuffix
))
builder
.
setDrmConfiguration
(
.
setDrmMultiSession
(
new
MediaItem
.
DrmConfiguration
.
Builder
(
drmUuid
)
intent
.
getBooleanExtra
(
DRM_MULTI_SESSION_EXTRA
+
extrasKeySuffix
,
false
))
.
setLicenseUri
(
intent
.
getStringExtra
(
DRM_LICENSE_URI_EXTRA
+
extrasKeySuffix
))
.
setDrmForceDefaultLicenseUri
(
.
setMultiSession
(
intent
.
getBooleanExtra
(
DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA
+
extrasKeySuffix
,
false
))
intent
.
getBooleanExtra
(
DRM_MULTI_SESSION_EXTRA
+
extrasKeySuffix
,
false
))
.
setDrmLicenseRequestHeaders
(
headers
);
.
setForceDefaultLicenseUri
(
if
(
intent
.
getBooleanExtra
(
DRM_SESSION_FOR_CLEAR_CONTENT
+
extrasKeySuffix
,
false
))
{
intent
.
getBooleanExtra
(
builder
.
setDrmSessionForClearTypes
(
ImmutableList
.
of
(
C
.
TRACK_TYPE_VIDEO
,
C
.
TRACK_TYPE_AUDIO
));
DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA
+
extrasKeySuffix
,
false
))
.
setLicenseRequestHeaders
(
headers
)
.
setSessionForClearPeriods
(
intent
.
getBooleanExtra
(
DRM_SESSION_FOR_CLEAR_CONTENT
+
extrasKeySuffix
,
false
))
.
build
());
}
}
return
builder
;
return
builder
;
}
}
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
View file @
13827186
...
@@ -504,9 +504,17 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -504,9 +504,17 @@ public class PlayerActivity extends AppCompatActivity
.
setUri
(
downloadRequest
.
uri
)
.
setUri
(
downloadRequest
.
uri
)
.
setCustomCacheKey
(
downloadRequest
.
customCacheKey
)
.
setCustomCacheKey
(
downloadRequest
.
customCacheKey
)
.
setMimeType
(
downloadRequest
.
mimeType
)
.
setMimeType
(
downloadRequest
.
mimeType
)
.
setStreamKeys
(
downloadRequest
.
streamKeys
)
.
setStreamKeys
(
downloadRequest
.
streamKeys
);
.
setDrmKeySetId
(
downloadRequest
.
keySetId
)
@Nullable
.
setDrmLicenseRequestHeaders
(
getDrmRequestHeaders
(
item
));
MediaItem
.
DrmConfiguration
drmConfiguration
=
item
.
playbackProperties
.
drmConfiguration
;
if
(
drmConfiguration
!=
null
)
{
builder
.
setDrmConfiguration
(
drmConfiguration
.
buildUpon
()
.
setKeySetId
(
downloadRequest
.
keySetId
)
.
setLicenseRequestHeaders
(
getDrmRequestHeaders
(
item
))
.
build
());
}
mediaItems
.
add
(
builder
.
build
());
mediaItems
.
add
(
builder
.
build
());
}
else
{
}
else
{
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
View file @
13827186
...
@@ -43,7 +43,6 @@ import android.widget.Toast;
...
@@ -43,7 +43,6 @@ import android.widget.Toast;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.MediaMetadata
;
import
com.google.android.exoplayer2.MediaMetadata
;
import
com.google.android.exoplayer2.ParserException
;
import
com.google.android.exoplayer2.ParserException
;
...
@@ -54,7 +53,7 @@ import com.google.android.exoplayer2.upstream.DataSourceInputStream;
...
@@ -54,7 +53,7 @@ import com.google.android.exoplayer2.upstream.DataSourceInputStream;
import
com.google.android.exoplayer2.upstream.DataSpec
;
import
com.google.android.exoplayer2.upstream.DataSpec
;
import
com.google.android.exoplayer2.util.Log
;
import
com.google.android.exoplayer2.util.Log
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.common.collect.Immutable
List
;
import
com.google.common.collect.Immutable
Map
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.InputStreamReader
;
...
@@ -64,6 +63,7 @@ import java.util.Collections;
...
@@ -64,6 +63,7 @@ import java.util.Collections;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.UUID
;
/** An activity for selecting from a list of media samples. */
/** An activity for selecting from a list of media samples. */
public
class
SampleChooserActivity
extends
AppCompatActivity
public
class
SampleChooserActivity
extends
AppCompatActivity
...
@@ -345,6 +345,12 @@ public class SampleChooserActivity extends AppCompatActivity
...
@@ -345,6 +345,12 @@ public class SampleChooserActivity extends AppCompatActivity
Uri
subtitleUri
=
null
;
Uri
subtitleUri
=
null
;
String
subtitleMimeType
=
null
;
String
subtitleMimeType
=
null
;
String
subtitleLanguage
=
null
;
String
subtitleLanguage
=
null
;
UUID
drmUuid
=
null
;
String
drmLicenseUri
=
null
;
ImmutableMap
<
String
,
String
>
drmLicenseRequestHeaders
=
null
;
boolean
drmSessionForClearContent
=
false
;
boolean
drmMultiSession
=
false
;
boolean
drmForceDefaultLicenseUri
=
false
;
MediaItem
.
Builder
mediaItem
=
new
MediaItem
.
Builder
();
MediaItem
.
Builder
mediaItem
=
new
MediaItem
.
Builder
();
reader
.
beginObject
();
reader
.
beginObject
();
...
@@ -370,11 +376,11 @@ public class SampleChooserActivity extends AppCompatActivity
...
@@ -370,11 +376,11 @@ public class SampleChooserActivity extends AppCompatActivity
mediaItem
.
setAdTagUri
(
reader
.
nextString
());
mediaItem
.
setAdTagUri
(
reader
.
nextString
());
break
;
break
;
case
"drm_scheme"
:
case
"drm_scheme"
:
mediaItem
.
setDrmUuid
(
Util
.
getDrmUuid
(
reader
.
nextString
()
));
drmUuid
=
Util
.
getDrmUuid
(
reader
.
nextString
(
));
break
;
break
;
case
"drm_license_uri"
:
case
"drm_license_uri"
:
case
"drm_license_url"
:
// For backward compatibility only.
case
"drm_license_url"
:
// For backward compatibility only.
mediaItem
.
setDrmLicenseUri
(
reader
.
nextString
()
);
drmLicenseUri
=
reader
.
nextString
(
);
break
;
break
;
case
"drm_key_request_properties"
:
case
"drm_key_request_properties"
:
Map
<
String
,
String
>
requestHeaders
=
new
HashMap
<>();
Map
<
String
,
String
>
requestHeaders
=
new
HashMap
<>();
...
@@ -383,19 +389,16 @@ public class SampleChooserActivity extends AppCompatActivity
...
@@ -383,19 +389,16 @@ public class SampleChooserActivity extends AppCompatActivity
requestHeaders
.
put
(
reader
.
nextName
(),
reader
.
nextString
());
requestHeaders
.
put
(
reader
.
nextName
(),
reader
.
nextString
());
}
}
reader
.
endObject
();
reader
.
endObject
();
mediaItem
.
setDrmLicenseRequestHeaders
(
requestHeaders
);
drmLicenseRequestHeaders
=
ImmutableMap
.
copyOf
(
requestHeaders
);
break
;
break
;
case
"drm_session_for_clear_content"
:
case
"drm_session_for_clear_content"
:
if
(
reader
.
nextBoolean
())
{
drmSessionForClearContent
=
reader
.
nextBoolean
();
mediaItem
.
setDrmSessionForClearTypes
(
ImmutableList
.
of
(
C
.
TRACK_TYPE_VIDEO
,
C
.
TRACK_TYPE_AUDIO
));
}
break
;
break
;
case
"drm_multi_session"
:
case
"drm_multi_session"
:
mediaItem
.
setDrmMultiSession
(
reader
.
nextBoolean
()
);
drmMultiSession
=
reader
.
nextBoolean
(
);
break
;
break
;
case
"drm_force_default_license_uri"
:
case
"drm_force_default_license_uri"
:
mediaItem
.
setDrmForceDefaultLicenseUri
(
reader
.
nextBoolean
()
);
drmForceDefaultLicenseUri
=
reader
.
nextBoolean
(
);
break
;
break
;
case
"subtitle_uri"
:
case
"subtitle_uri"
:
subtitleUri
=
Uri
.
parse
(
reader
.
nextString
());
subtitleUri
=
Uri
.
parse
(
reader
.
nextString
());
...
@@ -436,6 +439,16 @@ public class SampleChooserActivity extends AppCompatActivity
...
@@ -436,6 +439,16 @@ public class SampleChooserActivity extends AppCompatActivity
.
setUri
(
uri
)
.
setUri
(
uri
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
title
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
title
).
build
())
.
setMimeType
(
adaptiveMimeType
);
.
setMimeType
(
adaptiveMimeType
);
if
(
drmUuid
!=
null
)
{
mediaItem
.
setDrmConfiguration
(
new
MediaItem
.
DrmConfiguration
.
Builder
(
drmUuid
)
.
setLicenseUri
(
drmLicenseUri
)
.
setLicenseRequestHeaders
(
drmLicenseRequestHeaders
)
.
setSessionForClearPeriods
(
drmSessionForClearContent
)
.
setMultiSession
(
drmMultiSession
)
.
setForceDefaultLicenseUri
(
drmForceDefaultLicenseUri
)
.
build
());
}
if
(
subtitleUri
!=
null
)
{
if
(
subtitleUri
!=
null
)
{
MediaItem
.
Subtitle
subtitle
=
MediaItem
.
Subtitle
subtitle
=
new
MediaItem
.
Subtitle
(
new
MediaItem
.
Subtitle
(
...
...
docs/media-items.md
View file @
13827186
...
@@ -63,10 +63,12 @@ For protected content, the media item's DRM properties should be set:
...
@@ -63,10 +63,12 @@ For protected content, the media item's DRM properties should be set:
~~~
~~~
MediaItem mediaItem = new MediaItem.Builder()
MediaItem mediaItem = new MediaItem.Builder()
.setUri(videoUri)
.setUri(videoUri)
.setDrmUuid(C.WIDEVINE_UUID)
.setDrmConfiguration(
.setDrmLicenseUri(licenseUri)
new MediaItem.DrmConfiguration.Builder(C.WIDEVINE_UUID)
.setDrmLicenseRequestHeaders(httpRequestHeaders)
.setLicenseUri(licenseUri)
.setDrmMultiSession(true)
.setMultiSession(true)
.setLicenseRequestHeaders(httpRequestHeaders)
.build())
.build();
.build();
~~~
~~~
{: .language-java}
{: .language-java}
...
...
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java
View file @
13827186
...
@@ -96,17 +96,19 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
...
@@ -96,17 +96,19 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
}
}
}
}
private
static
void
populateDrmConfiguration
(
JSONObject
json
,
MediaItem
.
Builder
builder
)
private
static
void
populateDrmConfiguration
(
JSONObject
json
,
MediaItem
.
Builder
mediaItem
)
throws
JSONException
{
throws
JSONException
{
builder
.
setDrmUuid
(
UUID
.
fromString
(
json
.
getString
(
KEY_UUID
)));
MediaItem
.
DrmConfiguration
.
Builder
drmConfiguration
=
builder
.
setDrmLicenseUri
(
json
.
getString
(
KEY_LICENSE_URI
));
new
MediaItem
.
DrmConfiguration
.
Builder
(
UUID
.
fromString
(
json
.
getString
(
KEY_UUID
)))
.
setLicenseUri
(
json
.
getString
(
KEY_LICENSE_URI
));
JSONObject
requestHeadersJson
=
json
.
getJSONObject
(
KEY_REQUEST_HEADERS
);
JSONObject
requestHeadersJson
=
json
.
getJSONObject
(
KEY_REQUEST_HEADERS
);
HashMap
<
String
,
String
>
requestHeaders
=
new
HashMap
<>();
HashMap
<
String
,
String
>
requestHeaders
=
new
HashMap
<>();
for
(
Iterator
<
String
>
iterator
=
requestHeadersJson
.
keys
();
iterator
.
hasNext
();
)
{
for
(
Iterator
<
String
>
iterator
=
requestHeadersJson
.
keys
();
iterator
.
hasNext
();
)
{
String
key
=
iterator
.
next
();
String
key
=
iterator
.
next
();
requestHeaders
.
put
(
key
,
requestHeadersJson
.
getString
(
key
));
requestHeaders
.
put
(
key
,
requestHeadersJson
.
getString
(
key
));
}
}
builder
.
setDrmLicenseRequestHeaders
(
requestHeaders
);
drmConfiguration
.
setLicenseRequestHeaders
(
requestHeaders
);
mediaItem
.
setDrmConfiguration
(
drmConfiguration
.
build
());
}
}
// Serialization.
// Serialization.
...
...
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverterTest.java
View file @
13827186
...
@@ -24,7 +24,7 @@ import com.google.android.exoplayer2.MediaItem;
...
@@ -24,7 +24,7 @@ import com.google.android.exoplayer2.MediaItem;
import
com.google.android.exoplayer2.MediaMetadata
;
import
com.google.android.exoplayer2.MediaMetadata
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.gms.cast.MediaQueueItem
;
import
com.google.android.gms.cast.MediaQueueItem
;
import
java.util.Collections
;
import
com.google.common.collect.ImmutableMap
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
...
@@ -53,9 +53,11 @@ public class DefaultMediaItemConverterTest {
...
@@ -53,9 +53,11 @@ public class DefaultMediaItemConverterTest {
.
setUri
(
Uri
.
parse
(
"http://example.com"
))
.
setUri
(
Uri
.
parse
(
"http://example.com"
))
.
setMediaMetadata
(
MediaMetadata
.
EMPTY
)
.
setMediaMetadata
(
MediaMetadata
.
EMPTY
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmConfiguration
(
.
setDrmLicenseUri
(
"http://license.com"
)
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
)
.
setDrmLicenseRequestHeaders
(
Collections
.
singletonMap
(
"key"
,
"value"
))
.
setLicenseUri
(
"http://license.com"
)
.
setLicenseRequestHeaders
(
ImmutableMap
.
of
(
"key"
,
"value"
))
.
build
())
.
build
();
.
build
();
DefaultMediaItemConverter
converter
=
new
DefaultMediaItemConverter
();
DefaultMediaItemConverter
converter
=
new
DefaultMediaItemConverter
();
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java
View file @
13827186
...
@@ -316,21 +316,8 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
...
@@ -316,21 +316,8 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
@Nullable
@Nullable
MediaItem
.
PlaybackProperties
contentPlaybackProperties
=
MediaItem
.
PlaybackProperties
contentPlaybackProperties
=
contentMediaSource
.
getMediaItem
().
playbackProperties
;
contentMediaSource
.
getMediaItem
().
playbackProperties
;
if
(
contentPlaybackProperties
!=
null
if
(
contentPlaybackProperties
!=
null
)
{
&&
contentPlaybackProperties
.
drmConfiguration
!=
null
)
{
adMediaItem
.
setDrmConfiguration
(
contentPlaybackProperties
.
drmConfiguration
);
MediaItem
.
DrmConfiguration
drmConfiguration
=
contentPlaybackProperties
.
drmConfiguration
;
// TODO(internal b/179984779): Use MediaItem.Builder#setDrmConfiguration() when it's
// available.
adMediaItem
.
setDrmUuid
(
drmConfiguration
.
uuid
);
adMediaItem
.
setDrmKeySetId
(
drmConfiguration
.
getKeySetId
());
adMediaItem
.
setDrmLicenseUri
(
drmConfiguration
.
licenseUri
);
adMediaItem
.
setDrmForceDefaultLicenseUri
(
drmConfiguration
.
forceDefaultLicenseUri
);
adMediaItem
.
setDrmLicenseRequestHeaders
(
drmConfiguration
.
requestHeaders
);
adMediaItem
.
setDrmMultiSession
(
drmConfiguration
.
multiSession
);
adMediaItem
.
setDrmPlayClearContentWithoutKey
(
drmConfiguration
.
playClearContentWithoutKey
);
adMediaItem
.
setDrmSessionForClearTypes
(
drmConfiguration
.
sessionForClearTypes
);
}
}
MediaSource
adMediaSource
=
adMediaSourceFactory
.
createMediaSource
(
adMediaItem
.
build
());
MediaSource
adMediaSource
=
adMediaSourceFactory
.
createMediaSource
(
adMediaItem
.
build
());
adMediaSourceHolder
.
initializeWithMediaSource
(
adMediaSource
,
adUri
);
adMediaSourceHolder
.
initializeWithMediaSource
(
adMediaSource
,
adUri
);
...
...
library/core/src/test/java/com/google/android/exoplayer2/source/DefaultDrmSessionManagerProviderTest.java
View file @
13827186
...
@@ -43,8 +43,10 @@ public class DefaultDrmSessionManagerProviderTest {
...
@@ -43,8 +43,10 @@ public class DefaultDrmSessionManagerProviderTest {
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setUri
(
Uri
.
EMPTY
)
.
setUri
(
Uri
.
EMPTY
)
.
setDrmLicenseUri
(
Uri
.
EMPTY
)
.
setDrmConfiguration
(
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
)
.
setLicenseUri
(
Uri
.
EMPTY
)
.
build
())
.
build
();
.
build
();
DrmSessionManager
drmSessionManager
=
new
DefaultDrmSessionManagerProvider
().
get
(
mediaItem
);
DrmSessionManager
drmSessionManager
=
new
DefaultDrmSessionManagerProvider
().
get
(
mediaItem
);
...
@@ -57,20 +59,22 @@ public class DefaultDrmSessionManagerProviderTest {
...
@@ -57,20 +59,22 @@ public class DefaultDrmSessionManagerProviderTest {
MediaItem
mediaItem1
=
MediaItem
mediaItem1
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setUri
(
"https://example.test/content-1"
)
.
setUri
(
"https://example.test/content-1"
)
.
setDrm
Uuid
(
C
.
WIDEVINE_UUID
)
.
setDrm
Configuration
(
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
).
build
()
)
.
build
();
.
build
();
// Same DRM info as item1, but different URL to check it doesn't prevent re-using a manager.
// Same DRM info as item1, but different URL to check it doesn't prevent re-using a manager.
MediaItem
mediaItem2
=
MediaItem
mediaItem2
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setUri
(
"https://example.test/content-2"
)
.
setUri
(
"https://example.test/content-2"
)
.
setDrm
Uuid
(
C
.
WIDEVINE_UUID
)
.
setDrm
Configuration
(
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
).
build
()
)
.
build
();
.
build
();
// Different DRM info to 1 and 2, needs a different manager instance.
// Different DRM info to 1 and 2, needs a different manager instance.
MediaItem
mediaItem3
=
MediaItem
mediaItem3
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setUri
(
"https://example.test/content-3"
)
.
setUri
(
"https://example.test/content-3"
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmConfiguration
(
.
setDrmLicenseUri
(
"https://example.test/license"
)
new
MediaItem
.
DrmConfiguration
.
Builder
(
C
.
WIDEVINE_UUID
)
.
setLicenseUri
(
"https://example.test/license"
)
.
build
())
.
build
();
.
build
();
DefaultDrmSessionManagerProvider
provider
=
new
DefaultDrmSessionManagerProvider
();
DefaultDrmSessionManagerProvider
provider
=
new
DefaultDrmSessionManagerProvider
();
...
...
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