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
6a122f47
authored
Aug 15, 2019
by
aquilescanta
Committed by
Andrew Lewis
Aug 15, 2019
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Document injection of DrmSessionManagers into MediaSources instead of Renderers
PiperOrigin-RevId: 263532499
parent
4b75d333
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
113 additions
and
48 deletions
RELEASENOTES.md
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerFactory.java
library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java
playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java
testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java
RELEASENOTES.md
View file @
6a122f47
...
@@ -36,6 +36,8 @@
...
@@ -36,6 +36,8 @@
quality video can be loaded up to the full default buffer duration.
quality video can be loaded up to the full default buffer duration.
*
Replace
`ExoPlayerFactory`
by
`SimpleExoPlayer.Builder`
and
*
Replace
`ExoPlayerFactory`
by
`SimpleExoPlayer.Builder`
and
`ExoPlayer.Builder`
.
`ExoPlayer.Builder`
.
*
Inject
`DrmSessionManager`
into the
`MediaSources`
instead of
`Renderers`
(
[
#5619
](
https://github.com/google/ExoPlayer/issues/5619
)
).
### 2.10.4 ###
### 2.10.4 ###
...
...
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerFactory.java
View file @
6a122f47
...
@@ -21,6 +21,7 @@ import androidx.annotation.Nullable;
...
@@ -21,6 +21,7 @@ import androidx.annotation.Nullable;
import
com.google.android.exoplayer2.analytics.AnalyticsCollector
;
import
com.google.android.exoplayer2.analytics.AnalyticsCollector
;
import
com.google.android.exoplayer2.drm.DrmSessionManager
;
import
com.google.android.exoplayer2.drm.DrmSessionManager
;
import
com.google.android.exoplayer2.drm.FrameworkMediaCrypto
;
import
com.google.android.exoplayer2.drm.FrameworkMediaCrypto
;
import
com.google.android.exoplayer2.source.MediaSource
;
import
com.google.android.exoplayer2.trackselection.DefaultTrackSelector
;
import
com.google.android.exoplayer2.trackselection.DefaultTrackSelector
;
import
com.google.android.exoplayer2.trackselection.TrackSelector
;
import
com.google.android.exoplayer2.trackselection.TrackSelector
;
import
com.google.android.exoplayer2.upstream.BandwidthMeter
;
import
com.google.android.exoplayer2.upstream.BandwidthMeter
;
...
@@ -34,7 +35,11 @@ public final class ExoPlayerFactory {
...
@@ -34,7 +35,11 @@ public final class ExoPlayerFactory {
private
ExoPlayerFactory
()
{}
private
ExoPlayerFactory
()
{}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -49,7 +54,11 @@ public final class ExoPlayerFactory {
...
@@ -49,7 +54,11 @@ public final class ExoPlayerFactory {
context
,
renderersFactory
,
trackSelector
,
loadControl
,
drmSessionManager
);
context
,
renderersFactory
,
trackSelector
,
loadControl
,
drmSessionManager
);
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -98,7 +107,11 @@ public final class ExoPlayerFactory {
...
@@ -98,7 +107,11 @@ public final class ExoPlayerFactory {
return
newSimpleInstance
(
context
,
renderersFactory
,
trackSelector
,
loadControl
);
return
newSimpleInstance
(
context
,
renderersFactory
,
trackSelector
,
loadControl
);
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -111,7 +124,11 @@ public final class ExoPlayerFactory {
...
@@ -111,7 +124,11 @@ public final class ExoPlayerFactory {
context
,
renderersFactory
,
trackSelector
,
loadControl
,
drmSessionManager
);
context
,
renderersFactory
,
trackSelector
,
loadControl
,
drmSessionManager
);
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -140,7 +157,11 @@ public final class ExoPlayerFactory {
...
@@ -140,7 +157,11 @@ public final class ExoPlayerFactory {
Util
.
getLooper
());
Util
.
getLooper
());
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -153,7 +174,11 @@ public final class ExoPlayerFactory {
...
@@ -153,7 +174,11 @@ public final class ExoPlayerFactory {
context
,
renderersFactory
,
trackSelector
,
loadControl
,
drmSessionManager
,
Util
.
getLooper
());
context
,
renderersFactory
,
trackSelector
,
loadControl
,
drmSessionManager
,
Util
.
getLooper
());
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -174,7 +199,11 @@ public final class ExoPlayerFactory {
...
@@ -174,7 +199,11 @@ public final class ExoPlayerFactory {
Util
.
getLooper
());
Util
.
getLooper
());
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -194,7 +223,11 @@ public final class ExoPlayerFactory {
...
@@ -194,7 +223,11 @@ public final class ExoPlayerFactory {
Util
.
getLooper
());
Util
.
getLooper
());
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -214,7 +247,11 @@ public final class ExoPlayerFactory {
...
@@ -214,7 +247,11 @@ public final class ExoPlayerFactory {
looper
);
looper
);
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
...
@@ -236,7 +273,11 @@ public final class ExoPlayerFactory {
...
@@ -236,7 +273,11 @@ public final class ExoPlayerFactory {
looper
);
looper
);
}
}
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
/**
* @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
* be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
* MediaSource} factories.
*/
@Deprecated
@Deprecated
public
static
SimpleExoPlayer
newSimpleInstance
(
public
static
SimpleExoPlayer
newSimpleInstance
(
Context
context
,
Context
context
,
...
...
library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java
View file @
6a122f47
...
@@ -92,7 +92,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -92,7 +92,6 @@ public class SimpleExoPlayer extends BasePlayer
private
Clock
clock
;
private
Clock
clock
;
private
TrackSelector
trackSelector
;
private
TrackSelector
trackSelector
;
private
LoadControl
loadControl
;
private
LoadControl
loadControl
;
private
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
;
private
BandwidthMeter
bandwidthMeter
;
private
BandwidthMeter
bandwidthMeter
;
private
AnalyticsCollector
analyticsCollector
;
private
AnalyticsCollector
analyticsCollector
;
private
Looper
looper
;
private
Looper
looper
;
...
@@ -111,7 +110,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -111,7 +110,6 @@ public class SimpleExoPlayer extends BasePlayer
* <li>{@link RenderersFactory}: {@link DefaultRenderersFactory}
* <li>{@link RenderersFactory}: {@link DefaultRenderersFactory}
* <li>{@link TrackSelector}: {@link DefaultTrackSelector}
* <li>{@link TrackSelector}: {@link DefaultTrackSelector}
* <li>{@link LoadControl}: {@link DefaultLoadControl}
* <li>{@link LoadControl}: {@link DefaultLoadControl}
* <li>{@link DrmSessionManager}: {@link DrmSessionManager#getDummyDrmSessionManager()}
* <li>{@link BandwidthMeter}: {@link DefaultBandwidthMeter#getSingletonInstance(Context)}
* <li>{@link BandwidthMeter}: {@link DefaultBandwidthMeter#getSingletonInstance(Context)}
* <li>{@link Looper}: The {@link Looper} associated with the current thread, or the {@link
* <li>{@link Looper}: The {@link Looper} associated with the current thread, or the {@link
* Looper} of the application's main thread if the current thread doesn't have a {@link
* Looper} of the application's main thread if the current thread doesn't have a {@link
...
@@ -141,7 +139,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -141,7 +139,6 @@ public class SimpleExoPlayer extends BasePlayer
renderersFactory
,
renderersFactory
,
new
DefaultTrackSelector
(
context
),
new
DefaultTrackSelector
(
context
),
new
DefaultLoadControl
(),
new
DefaultLoadControl
(),
DrmSessionManager
.
getDummyDrmSessionManager
(),
DefaultBandwidthMeter
.
getSingletonInstance
(
context
),
DefaultBandwidthMeter
.
getSingletonInstance
(
context
),
Util
.
getLooper
(),
Util
.
getLooper
(),
new
AnalyticsCollector
(
Clock
.
DEFAULT
),
new
AnalyticsCollector
(
Clock
.
DEFAULT
),
...
@@ -160,7 +157,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -160,7 +157,6 @@ public class SimpleExoPlayer extends BasePlayer
* player.
* player.
* @param trackSelector A {@link TrackSelector}.
* @param trackSelector A {@link TrackSelector}.
* @param loadControl A {@link LoadControl}.
* @param loadControl A {@link LoadControl}.
* @param drmSessionManager A {@link DrmSessionManager}.
* @param bandwidthMeter A {@link BandwidthMeter}.
* @param bandwidthMeter A {@link BandwidthMeter}.
* @param looper A {@link Looper} that must be used for all calls to the player.
* @param looper A {@link Looper} that must be used for all calls to the player.
* @param analyticsCollector An {@link AnalyticsCollector}.
* @param analyticsCollector An {@link AnalyticsCollector}.
...
@@ -171,7 +167,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -171,7 +167,6 @@ public class SimpleExoPlayer extends BasePlayer
RenderersFactory
renderersFactory
,
RenderersFactory
renderersFactory
,
TrackSelector
trackSelector
,
TrackSelector
trackSelector
,
LoadControl
loadControl
,
LoadControl
loadControl
,
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
,
BandwidthMeter
bandwidthMeter
,
BandwidthMeter
bandwidthMeter
,
Looper
looper
,
Looper
looper
,
AnalyticsCollector
analyticsCollector
,
AnalyticsCollector
analyticsCollector
,
...
@@ -180,7 +175,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -180,7 +175,6 @@ public class SimpleExoPlayer extends BasePlayer
this
.
renderersFactory
=
renderersFactory
;
this
.
renderersFactory
=
renderersFactory
;
this
.
trackSelector
=
trackSelector
;
this
.
trackSelector
=
trackSelector
;
this
.
loadControl
=
loadControl
;
this
.
loadControl
=
loadControl
;
this
.
drmSessionManager
=
drmSessionManager
;
this
.
bandwidthMeter
=
bandwidthMeter
;
this
.
bandwidthMeter
=
bandwidthMeter
;
this
.
looper
=
looper
;
this
.
looper
=
looper
;
this
.
analyticsCollector
=
analyticsCollector
;
this
.
analyticsCollector
=
analyticsCollector
;
...
@@ -214,19 +208,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -214,19 +208,6 @@ public class SimpleExoPlayer extends BasePlayer
}
}
/**
/**
* Sets the {@link DrmSessionManager} that will be used for DRM protected playbacks.
*
* @param drmSessionManager A {@link DrmSessionManager}.
* @return This builder.
* @throws IllegalStateException If {@link #build()} has already been called.
*/
public
Builder
setDrmSessionManager
(
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
)
{
Assertions
.
checkState
(!
buildCalled
);
this
.
drmSessionManager
=
drmSessionManager
;
return
this
;
}
/**
* Sets the {@link BandwidthMeter} that will be used by the player.
* Sets the {@link BandwidthMeter} that will be used by the player.
*
*
* @param bandwidthMeter A {@link BandwidthMeter}.
* @param bandwidthMeter A {@link BandwidthMeter}.
...
@@ -294,7 +275,6 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -294,7 +275,6 @@ public class SimpleExoPlayer extends BasePlayer
renderersFactory
,
renderersFactory
,
trackSelector
,
trackSelector
,
loadControl
,
loadControl
,
drmSessionManager
,
bandwidthMeter
,
bandwidthMeter
,
analyticsCollector
,
analyticsCollector
,
clock
,
clock
,
...
@@ -354,7 +334,11 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -354,7 +334,11 @@ public class SimpleExoPlayer extends BasePlayer
* will not be used for DRM protected playbacks.
* will not be used for DRM protected playbacks.
* @param looper The {@link Looper} which must be used for all calls to the player and which is
* @param looper The {@link Looper} which must be used for all calls to the player and which is
* used to call listeners on.
* used to call listeners on.
* @deprecated Use {@link #SimpleExoPlayer(Context, RenderersFactory, TrackSelector, LoadControl,
* BandwidthMeter, AnalyticsCollector, Clock, Looper)} instead, and pass the {@link
* DrmSessionManager} to the {@link MediaSource} factories.
*/
*/
@Deprecated
protected
SimpleExoPlayer
(
protected
SimpleExoPlayer
(
Context
context
,
Context
context
,
RenderersFactory
renderersFactory
,
RenderersFactory
renderersFactory
,
...
@@ -386,7 +370,11 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -386,7 +370,11 @@ public class SimpleExoPlayer extends BasePlayer
* player events.
* player events.
* @param looper The {@link Looper} which must be used for all calls to the player and which is
* @param looper The {@link Looper} which must be used for all calls to the player and which is
* used to call listeners on.
* used to call listeners on.
* @deprecated Use {@link #SimpleExoPlayer(Context, RenderersFactory, TrackSelector, LoadControl,
* BandwidthMeter, AnalyticsCollector, Clock, Looper)} instead, and pass the {@link
* DrmSessionManager} to the {@link MediaSource} factories.
*/
*/
@Deprecated
protected
SimpleExoPlayer
(
protected
SimpleExoPlayer
(
Context
context
,
Context
context
,
RenderersFactory
renderersFactory
,
RenderersFactory
renderersFactory
,
...
@@ -413,6 +401,41 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -413,6 +401,41 @@ public class SimpleExoPlayer extends BasePlayer
* @param renderersFactory A factory for creating {@link Renderer}s to be used by the instance.
* @param renderersFactory A factory for creating {@link Renderer}s to be used by the instance.
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
* @param loadControl The {@link LoadControl} that will be used by the instance.
* @param loadControl The {@link LoadControl} that will be used by the instance.
* @param bandwidthMeter The {@link BandwidthMeter} that will be used by the instance.
* @param analyticsCollector A factory for creating the {@link AnalyticsCollector} that will
* collect and forward all player events.
* @param clock The {@link Clock} that will be used by the instance. Should always be {@link
* Clock#DEFAULT}, unless the player is being used from a test.
* @param looper The {@link Looper} which must be used for all calls to the player and which is
* used to call listeners on.
*/
@SuppressWarnings
(
"deprecation"
)
protected
SimpleExoPlayer
(
Context
context
,
RenderersFactory
renderersFactory
,
TrackSelector
trackSelector
,
LoadControl
loadControl
,
BandwidthMeter
bandwidthMeter
,
AnalyticsCollector
analyticsCollector
,
Clock
clock
,
Looper
looper
)
{
this
(
context
,
renderersFactory
,
trackSelector
,
loadControl
,
DrmSessionManager
.
getDummyDrmSessionManager
(),
bandwidthMeter
,
analyticsCollector
,
clock
,
looper
);
}
/**
* @param context A {@link Context}.
* @param renderersFactory A factory for creating {@link Renderer}s to be used by the instance.
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
* @param loadControl The {@link LoadControl} that will be used by the instance.
* @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance
* @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance
* will not be used for DRM protected playbacks.
* will not be used for DRM protected playbacks.
* @param bandwidthMeter The {@link BandwidthMeter} that will be used by the instance.
* @param bandwidthMeter The {@link BandwidthMeter} that will be used by the instance.
...
@@ -422,7 +445,11 @@ public class SimpleExoPlayer extends BasePlayer
...
@@ -422,7 +445,11 @@ public class SimpleExoPlayer extends BasePlayer
* Clock#DEFAULT}, unless the player is being used from a test.
* Clock#DEFAULT}, unless the player is being used from a test.
* @param looper The {@link Looper} which must be used for all calls to the player and which is
* @param looper The {@link Looper} which must be used for all calls to the player and which is
* used to call listeners on.
* used to call listeners on.
* @deprecated Use {@link #SimpleExoPlayer(Context, RenderersFactory, TrackSelector, LoadControl,
* BandwidthMeter, AnalyticsCollector, Clock, Looper)} instead, and pass the {@link
* DrmSessionManager} to the {@link MediaSource} factories.
*/
*/
@Deprecated
protected
SimpleExoPlayer
(
protected
SimpleExoPlayer
(
Context
context
,
Context
context
,
RenderersFactory
renderersFactory
,
RenderersFactory
renderersFactory
,
...
...
playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java
View file @
6a122f47
...
@@ -257,10 +257,10 @@ public final class DashTestRunner {
...
@@ -257,10 +257,10 @@ public final class DashTestRunner {
}
}
@Override
@Override
protected
D
efaultD
rmSessionManager
<
FrameworkMediaCrypto
>
buildDrmSessionManager
(
protected
DrmSessionManager
<
FrameworkMediaCrypto
>
buildDrmSessionManager
(
final
String
userAgent
)
{
final
String
userAgent
)
{
if
(
widevineLicenseUrl
==
null
)
{
if
(
widevineLicenseUrl
==
null
)
{
return
null
;
return
DrmSessionManager
.
getDummyDrmSessionManager
()
;
}
}
try
{
try
{
MediaDrmCallback
drmCallback
=
new
HttpMediaDrmCallback
(
widevineLicenseUrl
,
MediaDrmCallback
drmCallback
=
new
HttpMediaDrmCallback
(
widevineLicenseUrl
,
...
@@ -283,27 +283,25 @@ public final class DashTestRunner {
...
@@ -283,27 +283,25 @@ public final class DashTestRunner {
@Override
@Override
protected
SimpleExoPlayer
buildExoPlayer
(
protected
SimpleExoPlayer
buildExoPlayer
(
HostActivity
host
,
HostActivity
host
,
Surface
surface
,
MappingTrackSelector
trackSelector
)
{
Surface
surface
,
MappingTrackSelector
trackSelector
,
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
)
{
SimpleExoPlayer
player
=
SimpleExoPlayer
player
=
new
SimpleExoPlayer
.
Builder
(
host
,
new
DebugRenderersFactory
(
host
))
new
SimpleExoPlayer
.
Builder
(
host
,
new
DebugRenderersFactory
(
host
))
.
setTrackSelector
(
trackSelector
)
.
setTrackSelector
(
trackSelector
)
.
setDrmSessionManager
(
drmSessionManager
)
.
build
();
.
build
();
player
.
setVideoSurface
(
surface
);
player
.
setVideoSurface
(
surface
);
return
player
;
return
player
;
}
}
@Override
@Override
protected
MediaSource
buildSource
(
HostActivity
host
,
String
userAgent
)
{
protected
MediaSource
buildSource
(
HostActivity
host
,
String
userAgent
,
DrmSessionManager
<?>
drmSessionManager
)
{
DataSource
.
Factory
dataSourceFactory
=
DataSource
.
Factory
dataSourceFactory
=
this
.
dataSourceFactory
!=
null
this
.
dataSourceFactory
!=
null
?
this
.
dataSourceFactory
?
this
.
dataSourceFactory
:
new
DefaultDataSourceFactory
(
host
,
userAgent
);
:
new
DefaultDataSourceFactory
(
host
,
userAgent
);
Uri
manifestUri
=
Uri
.
parse
(
manifestUrl
);
Uri
manifestUri
=
Uri
.
parse
(
manifestUrl
);
return
new
DashMediaSource
.
Factory
(
dataSourceFactory
)
return
new
DashMediaSource
.
Factory
(
dataSourceFactory
)
.
setDrmSessionManager
(
drmSessionManager
)
.
setLoadErrorHandlingPolicy
(
new
DefaultLoadErrorHandlingPolicy
(
MIN_LOADABLE_RETRY_COUNT
))
.
setLoadErrorHandlingPolicy
(
new
DefaultLoadErrorHandlingPolicy
(
MIN_LOADABLE_RETRY_COUNT
))
.
createMediaSource
(
manifestUri
);
.
createMediaSource
(
manifestUri
);
}
}
...
...
testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java
View file @
6a122f47
...
@@ -130,8 +130,7 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
...
@@ -130,8 +130,7 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
// Build the player.
// Build the player.
trackSelector
=
buildTrackSelector
(
host
);
trackSelector
=
buildTrackSelector
(
host
);
String
userAgent
=
"ExoPlayerPlaybackTests"
;
String
userAgent
=
"ExoPlayerPlaybackTests"
;
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
=
buildDrmSessionManager
(
userAgent
);
player
=
buildExoPlayer
(
host
,
surface
,
trackSelector
);
player
=
buildExoPlayer
(
host
,
surface
,
trackSelector
,
drmSessionManager
);
player
.
setPlayWhenReady
(
true
);
player
.
setPlayWhenReady
(
true
);
player
.
addAnalyticsListener
(
this
);
player
.
addAnalyticsListener
(
this
);
player
.
addAnalyticsListener
(
new
EventLogger
(
trackSelector
,
tag
));
player
.
addAnalyticsListener
(
new
EventLogger
(
trackSelector
,
tag
));
...
@@ -141,7 +140,8 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
...
@@ -141,7 +140,8 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
pendingSchedule
.
start
(
player
,
trackSelector
,
surface
,
actionHandler
,
/* callback= */
null
);
pendingSchedule
.
start
(
player
,
trackSelector
,
surface
,
actionHandler
,
/* callback= */
null
);
pendingSchedule
=
null
;
pendingSchedule
=
null
;
}
}
player
.
prepare
(
buildSource
(
host
,
Util
.
getUserAgent
(
host
,
userAgent
)));
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
=
buildDrmSessionManager
(
userAgent
);
player
.
prepare
(
buildSource
(
host
,
Util
.
getUserAgent
(
host
,
userAgent
),
drmSessionManager
));
}
}
@Override
@Override
...
@@ -230,7 +230,7 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
...
@@ -230,7 +230,7 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
protected
DrmSessionManager
<
FrameworkMediaCrypto
>
buildDrmSessionManager
(
String
userAgent
)
{
protected
DrmSessionManager
<
FrameworkMediaCrypto
>
buildDrmSessionManager
(
String
userAgent
)
{
// Do nothing. Interested subclasses may override.
// Do nothing. Interested subclasses may override.
return
null
;
return
DrmSessionManager
.
getDummyDrmSessionManager
()
;
}
}
protected
DefaultTrackSelector
buildTrackSelector
(
HostActivity
host
)
{
protected
DefaultTrackSelector
buildTrackSelector
(
HostActivity
host
)
{
...
@@ -238,23 +238,20 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
...
@@ -238,23 +238,20 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
}
}
protected
SimpleExoPlayer
buildExoPlayer
(
protected
SimpleExoPlayer
buildExoPlayer
(
HostActivity
host
,
HostActivity
host
,
Surface
surface
,
MappingTrackSelector
trackSelector
)
{
Surface
surface
,
MappingTrackSelector
trackSelector
,
DrmSessionManager
<
FrameworkMediaCrypto
>
drmSessionManager
)
{
DefaultRenderersFactory
renderersFactory
=
new
DefaultRenderersFactory
(
host
);
DefaultRenderersFactory
renderersFactory
=
new
DefaultRenderersFactory
(
host
);
renderersFactory
.
setExtensionRendererMode
(
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_OFF
);
renderersFactory
.
setExtensionRendererMode
(
DefaultRenderersFactory
.
EXTENSION_RENDERER_MODE_OFF
);
renderersFactory
.
setAllowedVideoJoiningTimeMs
(
/* allowedVideoJoiningTimeMs= */
0
);
renderersFactory
.
setAllowedVideoJoiningTimeMs
(
/* allowedVideoJoiningTimeMs= */
0
);
SimpleExoPlayer
player
=
SimpleExoPlayer
player
=
new
SimpleExoPlayer
.
Builder
(
host
,
renderersFactory
)
new
SimpleExoPlayer
.
Builder
(
host
,
renderersFactory
)
.
setTrackSelector
(
trackSelector
)
.
setTrackSelector
(
trackSelector
)
.
setDrmSessionManager
(
drmSessionManager
)
.
build
();
.
build
();
player
.
setVideoSurface
(
surface
);
player
.
setVideoSurface
(
surface
);
return
player
;
return
player
;
}
}
protected
abstract
MediaSource
buildSource
(
HostActivity
host
,
String
userAgent
);
protected
abstract
MediaSource
buildSource
(
HostActivity
host
,
String
userAgent
,
DrmSessionManager
<?>
drmSessionManager
);
protected
void
onPlayerErrorInternal
(
ExoPlaybackException
error
)
{
protected
void
onPlayerErrorInternal
(
ExoPlaybackException
error
)
{
// Do nothing. Interested subclasses may override.
// Do nothing. Interested subclasses may override.
...
...
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