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
433526e0
authored
Oct 03, 2019
by
aquilescanta
Committed by
Oliver Woodman
Oct 04, 2019
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Deprecate DefaultDrmSessionManager factory methods and migrate main demo app
PiperOrigin-RevId: 272643202
parent
737b5cd8
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
51 deletions
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
demos/main/src/main/res/values/strings.xml
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
View file @
433526e0
...
@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.demo;
...
@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.demo;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
import
android.content.pm.PackageManager
;
import
android.media.MediaDrm
;
import
android.net.Uri
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.util.Pair
;
import
android.util.Pair
;
...
@@ -40,10 +41,10 @@ import com.google.android.exoplayer2.SimpleExoPlayer;
...
@@ -40,10 +41,10 @@ import com.google.android.exoplayer2.SimpleExoPlayer;
import
com.google.android.exoplayer2.demo.Sample.UriSample
;
import
com.google.android.exoplayer2.demo.Sample.UriSample
;
import
com.google.android.exoplayer2.drm.DefaultDrmSessionManager
;
import
com.google.android.exoplayer2.drm.DefaultDrmSessionManager
;
import
com.google.android.exoplayer2.drm.DrmSessionManager
;
import
com.google.android.exoplayer2.drm.DrmSessionManager
;
import
com.google.android.exoplayer2.drm.
Framework
MediaCrypto
;
import
com.google.android.exoplayer2.drm.
Exo
MediaCrypto
;
import
com.google.android.exoplayer2.drm.FrameworkMediaDrm
;
import
com.google.android.exoplayer2.drm.FrameworkMediaDrm
;
import
com.google.android.exoplayer2.drm.HttpMediaDrmCallback
;
import
com.google.android.exoplayer2.drm.HttpMediaDrmCallback
;
import
com.google.android.exoplayer2.drm.
UnsupportedDrmException
;
import
com.google.android.exoplayer2.drm.
MediaDrmCallback
;
import
com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException
;
import
com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException
;
import
com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException
;
import
com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException
;
import
com.google.android.exoplayer2.offline.DownloadHelper
;
import
com.google.android.exoplayer2.offline.DownloadHelper
;
...
@@ -78,8 +79,6 @@ import java.lang.reflect.Constructor;
...
@@ -78,8 +79,6 @@ import java.lang.reflect.Constructor;
import
java.net.CookieHandler
;
import
java.net.CookieHandler
;
import
java.net.CookieManager
;
import
java.net.CookieManager
;
import
java.net.CookiePolicy
;
import
java.net.CookiePolicy
;
import
java.util.ArrayList
;
import
java.util.UUID
;
/** An activity that plays media using {@link SimpleExoPlayer}. */
/** An activity that plays media using {@link SimpleExoPlayer}. */
public
class
PlayerActivity
extends
AppCompatActivity
public
class
PlayerActivity
extends
AppCompatActivity
...
@@ -131,8 +130,6 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -131,8 +130,6 @@ public class PlayerActivity extends AppCompatActivity
DEFAULT_COOKIE_MANAGER
.
setCookiePolicy
(
CookiePolicy
.
ACCEPT_ORIGINAL_SERVER
);
DEFAULT_COOKIE_MANAGER
.
setCookiePolicy
(
CookiePolicy
.
ACCEPT_ORIGINAL_SERVER
);
}
}
private
final
ArrayList
<
FrameworkMediaDrm
>
mediaDrms
;
private
PlayerView
playerView
;
private
PlayerView
playerView
;
private
LinearLayout
debugRootView
;
private
LinearLayout
debugRootView
;
private
Button
selectTracksButton
;
private
Button
selectTracksButton
;
...
@@ -156,10 +153,6 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -156,10 +153,6 @@ public class PlayerActivity extends AppCompatActivity
private
AdsLoader
adsLoader
;
private
AdsLoader
adsLoader
;
private
Uri
loadedAdTagUri
;
private
Uri
loadedAdTagUri
;
public
PlayerActivity
()
{
mediaDrms
=
new
ArrayList
<>();
}
// Activity lifecycle
// Activity lifecycle
@Override
@Override
...
@@ -342,7 +335,6 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -342,7 +335,6 @@ public class PlayerActivity extends AppCompatActivity
if
(
player
==
null
)
{
if
(
player
==
null
)
{
Intent
intent
=
getIntent
();
Intent
intent
=
getIntent
();
releaseMediaDrms
();
mediaSource
=
createTopLevelMediaSource
(
intent
);
mediaSource
=
createTopLevelMediaSource
(
intent
);
if
(
mediaSource
==
null
)
{
if
(
mediaSource
==
null
)
{
return
;
return
;
...
@@ -452,39 +444,30 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -452,39 +444,30 @@ public class PlayerActivity extends AppCompatActivity
}
}
private
MediaSource
createLeafMediaSource
(
UriSample
parameters
)
{
private
MediaSource
createLeafMediaSource
(
UriSample
parameters
)
{
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
=
null
;
Sample
.
DrmInfo
drmInfo
=
parameters
.
drmInfo
;
Sample
.
DrmInfo
drmInfo
=
parameters
.
drmInfo
;
if
(
drmInfo
!=
null
)
{
int
errorStringId
=
R
.
string
.
error_drm_unknown
;
int
errorStringId
=
R
.
string
.
error_drm_unknown
;
if
(
Util
.
SDK_INT
<
18
)
{
DrmSessionManager
<
ExoMediaCrypto
>
drmSessionManager
=
null
;
errorStringId
=
R
.
string
.
error_drm_not_supported
;
if
(
drmInfo
==
null
)
{
}
else
{
drmSessionManager
=
DrmSessionManager
.
getDummyDrmSessionManager
();
try
{
}
else
if
(
Util
.
SDK_INT
<
18
)
{
if
(
drmInfo
.
drmScheme
==
null
)
{
errorStringId
=
R
.
string
.
error_drm_unsupported_before_api_18
;
}
else
if
(!
MediaDrm
.
isCryptoSchemeSupported
(
drmInfo
.
drmScheme
))
{
errorStringId
=
R
.
string
.
error_drm_unsupported_scheme
;
errorStringId
=
R
.
string
.
error_drm_unsupported_scheme
;
}
else
{
}
else
{
MediaDrmCallback
mediaDrmCallback
=
createMediaDrmCallback
(
drmInfo
.
drmLicenseUrl
,
drmInfo
.
drmKeyRequestProperties
);
drmSessionManager
=
drmSessionManager
=
buildDrmSessionManagerV18
(
new
DefaultDrmSessionManager
.
Builder
()
drmInfo
.
drmScheme
,
.
setUuidAndExoMediaDrmProvider
(
drmInfo
.
drmScheme
,
FrameworkMediaDrm
.
DEFAULT_PROVIDER
)
drmInfo
.
drmLicenseUrl
,
.
setMultiSession
(
drmInfo
.
drmMultiSession
)
drmInfo
.
drmKeyRequestProperties
,
.
build
(
mediaDrmCallback
);
drmInfo
.
drmMultiSession
);
}
}
catch
(
UnsupportedDrmException
e
)
{
errorStringId
=
e
.
reason
==
UnsupportedDrmException
.
REASON_UNSUPPORTED_SCHEME
?
R
.
string
.
error_drm_unsupported_scheme
:
R
.
string
.
error_drm_unknown
;
}
}
}
if
(
drmSessionManager
==
null
)
{
if
(
drmSessionManager
==
null
)
{
showToast
(
errorStringId
);
showToast
(
errorStringId
);
finish
();
finish
();
return
null
;
return
null
;
}
}
}
else
{
drmSessionManager
=
DrmSessionManager
.
getDummyDrmSessionManager
();
}
DownloadRequest
downloadRequest
=
DownloadRequest
downloadRequest
=
((
DemoApplication
)
getApplication
())
((
DemoApplication
)
getApplication
())
...
@@ -497,7 +480,7 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -497,7 +480,7 @@ public class PlayerActivity extends AppCompatActivity
}
}
private
MediaSource
createLeafMediaSource
(
private
MediaSource
createLeafMediaSource
(
Uri
uri
,
String
extension
,
DrmSessionManager
<
Framework
MediaCrypto
>
drmSessionManager
)
{
Uri
uri
,
String
extension
,
DrmSessionManager
<
Exo
MediaCrypto
>
drmSessionManager
)
{
@ContentType
int
type
=
Util
.
inferContentType
(
uri
,
extension
);
@ContentType
int
type
=
Util
.
inferContentType
(
uri
,
extension
);
switch
(
type
)
{
switch
(
type
)
{
case
C
.
TYPE_DASH
:
case
C
.
TYPE_DASH
:
...
@@ -521,9 +504,8 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -521,9 +504,8 @@ public class PlayerActivity extends AppCompatActivity
}
}
}
}
private
DefaultDrmSessionManager
<
FrameworkMediaCrypto
>
buildDrmSessionManagerV18
(
private
HttpMediaDrmCallback
createMediaDrmCallback
(
UUID
uuid
,
String
licenseUrl
,
String
[]
keyRequestPropertiesArray
,
boolean
multiSession
)
String
licenseUrl
,
String
[]
keyRequestPropertiesArray
)
{
throws
UnsupportedDrmException
{
HttpDataSource
.
Factory
licenseDataSourceFactory
=
HttpDataSource
.
Factory
licenseDataSourceFactory
=
((
DemoApplication
)
getApplication
()).
buildHttpDataSourceFactory
();
((
DemoApplication
)
getApplication
()).
buildHttpDataSourceFactory
();
HttpMediaDrmCallback
drmCallback
=
HttpMediaDrmCallback
drmCallback
=
...
@@ -534,10 +516,7 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -534,10 +516,7 @@ public class PlayerActivity extends AppCompatActivity
keyRequestPropertiesArray
[
i
+
1
]);
keyRequestPropertiesArray
[
i
+
1
]);
}
}
}
}
return
drmCallback
;
FrameworkMediaDrm
mediaDrm
=
FrameworkMediaDrm
.
newInstance
(
uuid
);
mediaDrms
.
add
(
mediaDrm
);
return
new
DefaultDrmSessionManager
<>(
uuid
,
mediaDrm
,
drmCallback
,
null
,
multiSession
);
}
}
private
void
releasePlayer
()
{
private
void
releasePlayer
()
{
...
@@ -554,14 +533,6 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -554,14 +533,6 @@ public class PlayerActivity extends AppCompatActivity
if
(
adsLoader
!=
null
)
{
if
(
adsLoader
!=
null
)
{
adsLoader
.
setPlayer
(
null
);
adsLoader
.
setPlayer
(
null
);
}
}
releaseMediaDrms
();
}
private
void
releaseMediaDrms
()
{
for
(
FrameworkMediaDrm
mediaDrm
:
mediaDrms
)
{
mediaDrm
.
release
();
}
mediaDrms
.
clear
();
}
}
private
void
releaseAdsLoader
()
{
private
void
releaseAdsLoader
()
{
...
...
demos/main/src/main/res/values/strings.xml
View file @
433526e0
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
<string
name=
"error_unrecognized_stereo_mode"
>
Unrecognized stereo mode
</string>
<string
name=
"error_unrecognized_stereo_mode"
>
Unrecognized stereo mode
</string>
<string
name=
"error_drm_
not_supported
"
>
Protected content not supported on API levels below 18
</string>
<string
name=
"error_drm_
unsupported_before_api_18
"
>
Protected content not supported on API levels below 18
</string>
<string
name=
"error_drm_unsupported_scheme"
>
This device does not support the required DRM scheme
</string>
<string
name=
"error_drm_unsupported_scheme"
>
This device does not support the required DRM scheme
</string>
...
...
library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java
View file @
433526e0
...
@@ -63,7 +63,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
...
@@ -63,7 +63,7 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
private
LoadErrorHandlingPolicy
loadErrorHandlingPolicy
;
private
LoadErrorHandlingPolicy
loadErrorHandlingPolicy
;
/**
/**
* Creates a builder with default values.
* Creates a builder with default values.
The default values are:
*
*
* <ul>
* <ul>
* <li>{@link #setKeyRequestParameters keyRequestParameters}: An empty map.
* <li>{@link #setKeyRequestParameters keyRequestParameters}: An empty map.
...
@@ -258,7 +258,9 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
...
@@ -258,7 +258,9 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
* @param callback Performs key and provisioning requests.
* @param callback Performs key and provisioning requests.
* @param optionalKeyRequestParameters An optional map of parameters to pass as the last argument
* @param optionalKeyRequestParameters An optional map of parameters to pass as the last argument
* to {@link ExoMediaDrm#getKeyRequest(byte[], List, int, HashMap)}. May be null.
* to {@link ExoMediaDrm#getKeyRequest(byte[], List, int, HashMap)}. May be null.
* @deprecated Use {@link Builder} instead.
*/
*/
@Deprecated
public
DefaultDrmSessionManager
(
public
DefaultDrmSessionManager
(
UUID
uuid
,
UUID
uuid
,
ExoMediaDrm
<
T
>
exoMediaDrm
,
ExoMediaDrm
<
T
>
exoMediaDrm
,
...
@@ -281,7 +283,9 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
...
@@ -281,7 +283,9 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
* to {@link ExoMediaDrm#getKeyRequest(byte[], List, int, HashMap)}. May be null.
* to {@link ExoMediaDrm#getKeyRequest(byte[], List, int, HashMap)}. May be null.
* @param multiSession A boolean that specify whether multiple key session support is enabled.
* @param multiSession A boolean that specify whether multiple key session support is enabled.
* Default is false.
* Default is false.
* @deprecated Use {@link Builder} instead.
*/
*/
@Deprecated
public
DefaultDrmSessionManager
(
public
DefaultDrmSessionManager
(
UUID
uuid
,
UUID
uuid
,
ExoMediaDrm
<
T
>
exoMediaDrm
,
ExoMediaDrm
<
T
>
exoMediaDrm
,
...
@@ -307,7 +311,9 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
...
@@ -307,7 +311,9 @@ public class DefaultDrmSessionManager<T extends ExoMediaCrypto>
* Default is false.
* Default is false.
* @param initialDrmRequestRetryCount The number of times to retry for initial provisioning and
* @param initialDrmRequestRetryCount The number of times to retry for initial provisioning and
* key request before reporting error.
* key request before reporting error.
* @deprecated Use {@link Builder} instead.
*/
*/
@Deprecated
public
DefaultDrmSessionManager
(
public
DefaultDrmSessionManager
(
UUID
uuid
,
UUID
uuid
,
ExoMediaDrm
<
T
>
exoMediaDrm
,
ExoMediaDrm
<
T
>
exoMediaDrm
,
...
...
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