Move playback tests off deprecated APIs

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=210077548
This commit is contained in:
olly 2018-08-24 03:31:11 -07:00 committed by Oliver Woodman
parent a71e28440d
commit 38f2f352f9
9 changed files with 71 additions and 135 deletions

View File

@ -298,7 +298,7 @@ public class DashDownloaderTest {
} }
private DashDownloader getDashDownloader(FakeDataSet fakeDataSet, StreamKey... keys) { private DashDownloader getDashDownloader(FakeDataSet fakeDataSet, StreamKey... keys) {
return getDashDownloader(new Factory(null).setFakeDataSet(fakeDataSet), keys); return getDashDownloader(new Factory().setFakeDataSet(fakeDataSet), keys);
} }
private DashDownloader getDashDownloader(Factory factory, StreamKey... keys) { private DashDownloader getDashDownloader(Factory factory, StreamKey... keys) {

View File

@ -235,8 +235,7 @@ public class DownloadManagerDashTest {
private void createDownloadManager() { private void createDownloadManager() {
dummyMainThread.runOnMainThread( dummyMainThread.runOnMainThread(
() -> { () -> {
Factory fakeDataSourceFactory = Factory fakeDataSourceFactory = new FakeDataSource.Factory().setFakeDataSet(fakeDataSet);
new FakeDataSource.Factory(null).setFakeDataSet(fakeDataSet);
downloadManager = downloadManager =
new DownloadManager( new DownloadManager(
new DownloaderConstructorHelper(cache, fakeDataSourceFactory), new DownloaderConstructorHelper(cache, fakeDataSourceFactory),

View File

@ -101,7 +101,7 @@ public class DownloadServiceDashTest {
.setRandomData("text_segment_2", 2) .setRandomData("text_segment_2", 2)
.setRandomData("text_segment_3", 3); .setRandomData("text_segment_3", 3);
final DataSource.Factory fakeDataSourceFactory = final DataSource.Factory fakeDataSourceFactory =
new FakeDataSource.Factory(null).setFakeDataSet(fakeDataSet); new FakeDataSource.Factory().setFakeDataSet(fakeDataSet);
fakeStreamKey1 = new StreamKey(0, 0, 0); fakeStreamKey1 = new StreamKey(0, 0, 0);
fakeStreamKey2 = new StreamKey(0, 1, 0); fakeStreamKey2 = new StreamKey(0, 1, 0);

View File

@ -183,7 +183,7 @@ public class HlsDownloaderTest {
} }
private HlsDownloader getHlsDownloader(String mediaPlaylistUri, List<StreamKey> keys) { private HlsDownloader getHlsDownloader(String mediaPlaylistUri, List<StreamKey> keys) {
Factory factory = new Factory(null).setFakeDataSet(fakeDataSet); Factory factory = new Factory().setFakeDataSet(fakeDataSet);
return new HlsDownloader( return new HlsDownloader(
Uri.parse(mediaPlaylistUri), keys, new DownloaderConstructorHelper(cache, factory)); Uri.parse(mediaPlaylistUri), keys, new DownloaderConstructorHelper(cache, factory));
} }

View File

@ -25,6 +25,7 @@ import android.net.Uri;
import android.util.Log; import android.util.Log;
import android.view.Surface; import android.view.Surface;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.DefaultLoadControl;
import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayerFactory; import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.Format;
@ -42,7 +43,6 @@ import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.TrackGroup; import com.google.android.exoplayer2.source.TrackGroup;
import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.source.dash.DashMediaSource;
import com.google.android.exoplayer2.source.dash.DefaultDashChunkSource;
import com.google.android.exoplayer2.testutil.ActionSchedule; import com.google.android.exoplayer2.testutil.ActionSchedule;
import com.google.android.exoplayer2.testutil.DebugRenderersFactory; import com.google.android.exoplayer2.testutil.DebugRenderersFactory;
import com.google.android.exoplayer2.testutil.DecoderCountersUtil; import com.google.android.exoplayer2.testutil.DecoderCountersUtil;
@ -55,11 +55,10 @@ import com.google.android.exoplayer2.trackselection.FixedTrackSelection;
import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
import com.google.android.exoplayer2.trackselection.RandomTrackSelection; import com.google.android.exoplayer2.trackselection.RandomTrackSelection;
import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
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 java.util.ArrayList; import java.util.ArrayList;
@ -265,8 +264,7 @@ public final class DashTestRunner {
} }
@Override @Override
protected DefaultTrackSelector buildTrackSelector( protected DefaultTrackSelector buildTrackSelector(HostActivity host) {
HostActivity host, BandwidthMeter bandwidthMeter) {
return trackSelector; return trackSelector;
} }
@ -296,30 +294,31 @@ public final class DashTestRunner {
} }
@Override @Override
protected SimpleExoPlayer buildExoPlayer(HostActivity host, Surface surface, protected SimpleExoPlayer buildExoPlayer(
HostActivity host,
Surface surface,
MappingTrackSelector trackSelector, MappingTrackSelector trackSelector,
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) { DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
SimpleExoPlayer player = SimpleExoPlayer player =
ExoPlayerFactory.newSimpleInstance( ExoPlayerFactory.newSimpleInstance(
host, new DebugRenderersFactory(host), trackSelector, drmSessionManager); host,
new DebugRenderersFactory(host),
trackSelector,
new DefaultLoadControl(),
drmSessionManager);
player.setVideoSurface(surface); player.setVideoSurface(surface);
return player; return player;
} }
@Override @Override
protected MediaSource buildSource( protected MediaSource buildSource(HostActivity host, String userAgent) {
HostActivity host, String userAgent, TransferListener mediaTransferListener) { DataSource.Factory dataSourceFactory =
DataSource.Factory manifestDataSourceFactory = dataSourceFactory != null this.dataSourceFactory != null
? dataSourceFactory : new DefaultDataSourceFactory(host, userAgent); ? this.dataSourceFactory
DataSource.Factory mediaDataSourceFactory = dataSourceFactory != null : new DefaultDataSourceFactory(host, userAgent);
? dataSourceFactory
: new DefaultDataSourceFactory(host, userAgent, mediaTransferListener);
Uri manifestUri = Uri.parse(manifestUrl); Uri manifestUri = Uri.parse(manifestUrl);
DefaultDashChunkSource.Factory chunkSourceFactory = new DefaultDashChunkSource.Factory( return new DashMediaSource.Factory(dataSourceFactory)
mediaDataSourceFactory); .setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(MIN_LOADABLE_RETRY_COUNT))
return new DashMediaSource.Factory(chunkSourceFactory, manifestDataSourceFactory)
.setMinLoadableRetryCount(MIN_LOADABLE_RETRY_COUNT)
.setLivePresentationDelayMs(0)
.createMediaSource(manifestUri); .createMediaSource(manifestUri);
} }

View File

@ -22,6 +22,7 @@ import android.os.Looper;
import android.os.SystemClock; import android.os.SystemClock;
import android.util.Log; import android.util.Log;
import android.view.Surface; import android.view.Surface;
import com.google.android.exoplayer2.DefaultLoadControl;
import com.google.android.exoplayer2.DefaultRenderersFactory; import com.google.android.exoplayer2.DefaultRenderersFactory;
import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
@ -30,6 +31,7 @@ import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.RenderersFactory; import com.google.android.exoplayer2.RenderersFactory;
import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.analytics.AnalyticsListener;
import com.google.android.exoplayer2.audio.AudioRendererEventListener; import com.google.android.exoplayer2.audio.AudioRendererEventListener;
import com.google.android.exoplayer2.audio.DefaultAudioSink; import com.google.android.exoplayer2.audio.DefaultAudioSink;
import com.google.android.exoplayer2.decoder.DecoderCounters; import com.google.android.exoplayer2.decoder.DecoderCounters;
@ -40,9 +42,6 @@ import com.google.android.exoplayer2.testutil.HostActivity.HostedTest;
import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection; import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.Clock;
import com.google.android.exoplayer2.util.HandlerWrapper; import com.google.android.exoplayer2.util.HandlerWrapper;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
@ -80,9 +79,7 @@ public abstract class ExoHostedTest
private SimpleExoPlayer player; private SimpleExoPlayer player;
private Surface surface; private Surface surface;
private ExoPlaybackException playerError; private ExoPlaybackException playerError;
private Player.EventListener playerEventListener; private AnalyticsListener analyticsListener;
private VideoRendererEventListener videoDebugListener;
private AudioRendererEventListener audioDebugListener;
private boolean playerWasPrepared; private boolean playerWasPrepared;
private boolean playing; private boolean playing;
@ -135,33 +132,11 @@ public abstract class ExoHostedTest
} }
} }
/** /** Sets an {@link AnalyticsListener} to listen for events during the test. */
* Sets an {@link Player.EventListener} to listen for ExoPlayer events during the test. public final void setAnalyticsListener(AnalyticsListener analyticsListener) {
*/ this.analyticsListener = analyticsListener;
public final void setEventListener(Player.EventListener eventListener) {
this.playerEventListener = eventListener;
if (player != null) { if (player != null) {
player.addListener(eventListener); player.addAnalyticsListener(analyticsListener);
}
}
/**
* Sets an {@link VideoRendererEventListener} to listen for video debug events during the test.
*/
public final void setVideoDebugListener(VideoRendererEventListener videoDebugListener) {
this.videoDebugListener = videoDebugListener;
if (player != null) {
player.addVideoDebugListener(videoDebugListener);
}
}
/**
* Sets an {@link AudioRendererEventListener} to listen for audio debug events during the test.
*/
public final void setAudioDebugListener(AudioRendererEventListener audioDebugListener) {
this.audioDebugListener = audioDebugListener;
if (player != null) {
player.addAudioDebugListener(audioDebugListener);
} }
} }
@ -171,20 +146,13 @@ public abstract class ExoHostedTest
public final void onStart(HostActivity host, Surface surface) { public final void onStart(HostActivity host, Surface surface) {
this.surface = surface; this.surface = surface;
// Build the player. // Build the player.
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(); trackSelector = buildTrackSelector(host);
trackSelector = buildTrackSelector(host, bandwidthMeter);
String userAgent = "ExoPlayerPlaybackTests"; String userAgent = "ExoPlayerPlaybackTests";
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager = buildDrmSessionManager(userAgent); DrmSessionManager<FrameworkMediaCrypto> drmSessionManager = buildDrmSessionManager(userAgent);
player = buildExoPlayer(host, surface, trackSelector, drmSessionManager); player = buildExoPlayer(host, surface, trackSelector, drmSessionManager);
player.prepare(buildSource(host, Util.getUserAgent(host, userAgent), bandwidthMeter)); player.prepare(buildSource(host, Util.getUserAgent(host, userAgent)));
if (playerEventListener != null) { if (analyticsListener != null) {
player.addListener(playerEventListener); player.addAnalyticsListener(analyticsListener);
}
if (videoDebugListener != null) {
player.addVideoDebugListener(videoDebugListener);
}
if (audioDebugListener != null) {
player.addAudioDebugListener(audioDebugListener);
} }
player.addListener(this); player.addListener(this);
player.addAudioDebugListener(this); player.addAudioDebugListener(this);
@ -354,26 +322,30 @@ public abstract class ExoHostedTest
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
protected DefaultTrackSelector buildTrackSelector( protected DefaultTrackSelector buildTrackSelector(HostActivity host) {
HostActivity host, BandwidthMeter bandwidthMeter) { return new DefaultTrackSelector(new AdaptiveTrackSelection.Factory());
return new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
protected SimpleExoPlayer buildExoPlayer(HostActivity host, Surface surface, protected SimpleExoPlayer buildExoPlayer(
HostActivity host,
Surface surface,
MappingTrackSelector trackSelector, MappingTrackSelector trackSelector,
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) { DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
RenderersFactory renderersFactory = new DefaultRenderersFactory(host, drmSessionManager, RenderersFactory renderersFactory =
DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF, 0); new DefaultRenderersFactory(
host,
DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF,
/* allowedVideoJoiningTimeMs= */ 0);
SimpleExoPlayer player = SimpleExoPlayer player =
ExoPlayerFactory.newSimpleInstance(host, renderersFactory, trackSelector); ExoPlayerFactory.newSimpleInstance(
host, renderersFactory, trackSelector, new DefaultLoadControl(), drmSessionManager);
player.setVideoSurface(surface); player.setVideoSurface(surface);
return player; return player;
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
protected abstract MediaSource buildSource( protected abstract MediaSource buildSource(HostActivity host, String userAgent);
HostActivity host, String userAgent, TransferListener mediaTransferListener);
@SuppressWarnings("unused") @SuppressWarnings("unused")
protected void onPlayerErrorInternal(ExoPlaybackException error) { protected void onPlayerErrorInternal(ExoPlaybackException error) {

View File

@ -32,17 +32,16 @@ import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.analytics.AnalyticsCollector; import com.google.android.exoplayer2.analytics.AnalyticsCollector;
import com.google.android.exoplayer2.analytics.AnalyticsListener; import com.google.android.exoplayer2.analytics.AnalyticsListener;
import com.google.android.exoplayer2.audio.AudioRendererEventListener;
import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
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.DefaultBandwidthMeter; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.Clock;
import com.google.android.exoplayer2.util.HandlerWrapper; import com.google.android.exoplayer2.util.HandlerWrapper;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.video.VideoRendererEventListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
@ -77,13 +76,12 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
private MediaSource mediaSource; private MediaSource mediaSource;
private DefaultTrackSelector trackSelector; private DefaultTrackSelector trackSelector;
private LoadControl loadControl; private LoadControl loadControl;
private BandwidthMeter bandwidthMeter;
private Format[] supportedFormats; private Format[] supportedFormats;
private Renderer[] renderers; private Renderer[] renderers;
private RenderersFactory renderersFactory; private RenderersFactory renderersFactory;
private ActionSchedule actionSchedule; private ActionSchedule actionSchedule;
private Player.EventListener eventListener; private Player.EventListener eventListener;
private VideoRendererEventListener videoRendererEventListener;
private AudioRendererEventListener audioRendererEventListener;
private AnalyticsListener analyticsListener; private AnalyticsListener analyticsListener;
private Integer expectedPlayerEndedCount; private Integer expectedPlayerEndedCount;
@ -158,6 +156,18 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
return this; return this;
} }
/**
* Sets the {@link BandwidthMeter} to be used by the test runner. The default value is a {@link
* DefaultBandwidthMeter} in its default configuration.
*
* @param bandwidthMeter The {@link BandwidthMeter} to be used by the test runner.
* @return This builder.
*/
public Builder setBandwidthMeter(BandwidthMeter bandwidthMeter) {
this.bandwidthMeter = bandwidthMeter;
return this;
}
/** /**
* Sets a list of {@link Format}s to be used by a {@link FakeMediaSource} to create media * Sets a list of {@link Format}s to be used by a {@link FakeMediaSource} to create media
* periods and for setting up a {@link FakeRenderer}. The default value is a single * periods and for setting up a {@link FakeRenderer}. The default value is a single
@ -238,28 +248,6 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
return this; return this;
} }
/**
* Sets a {@link VideoRendererEventListener} to be registered.
*
* @param eventListener A {@link VideoRendererEventListener} to be registered.
* @return This builder.
*/
public Builder setVideoRendererEventListener(VideoRendererEventListener eventListener) {
this.videoRendererEventListener = eventListener;
return this;
}
/**
* Sets an {@link AudioRendererEventListener} to be registered.
*
* @param eventListener An {@link AudioRendererEventListener} to be registered.
* @return This builder.
*/
public Builder setAudioRendererEventListener(AudioRendererEventListener eventListener) {
this.audioRendererEventListener = eventListener;
return this;
}
/** /**
* Sets an {@link AnalyticsListener} to be registered. * Sets an {@link AnalyticsListener} to be registered.
* *
@ -298,6 +286,9 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
if (trackSelector == null) { if (trackSelector == null) {
trackSelector = new DefaultTrackSelector(); trackSelector = new DefaultTrackSelector();
} }
if (bandwidthMeter == null) {
bandwidthMeter = new DefaultBandwidthMeter.Builder().build();
}
if (renderersFactory == null) { if (renderersFactory == null) {
if (renderers == null) { if (renderers == null) {
renderers = new Renderer[] {new FakeRenderer(supportedFormats)}; renderers = new Renderer[] {new FakeRenderer(supportedFormats)};
@ -332,10 +323,9 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
renderersFactory, renderersFactory,
trackSelector, trackSelector,
loadControl, loadControl,
bandwidthMeter,
actionSchedule, actionSchedule,
eventListener, eventListener,
videoRendererEventListener,
audioRendererEventListener,
analyticsListener, analyticsListener,
expectedPlayerEndedCount); expectedPlayerEndedCount);
} }
@ -347,10 +337,9 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
private final RenderersFactory renderersFactory; private final RenderersFactory renderersFactory;
private final DefaultTrackSelector trackSelector; private final DefaultTrackSelector trackSelector;
private final LoadControl loadControl; private final LoadControl loadControl;
private final BandwidthMeter bandwidthMeter;
private final @Nullable ActionSchedule actionSchedule; private final @Nullable ActionSchedule actionSchedule;
private final @Nullable Player.EventListener eventListener; private final @Nullable Player.EventListener eventListener;
private final @Nullable VideoRendererEventListener videoRendererEventListener;
private final @Nullable AudioRendererEventListener audioRendererEventListener;
private final @Nullable AnalyticsListener analyticsListener; private final @Nullable AnalyticsListener analyticsListener;
private final HandlerThread playerThread; private final HandlerThread playerThread;
@ -375,10 +364,9 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
RenderersFactory renderersFactory, RenderersFactory renderersFactory,
DefaultTrackSelector trackSelector, DefaultTrackSelector trackSelector,
LoadControl loadControl, LoadControl loadControl,
BandwidthMeter bandwidthMeter,
@Nullable ActionSchedule actionSchedule, @Nullable ActionSchedule actionSchedule,
@Nullable Player.EventListener eventListener, @Nullable Player.EventListener eventListener,
@Nullable VideoRendererEventListener videoRendererEventListener,
@Nullable AudioRendererEventListener audioRendererEventListener,
@Nullable AnalyticsListener analyticsListener, @Nullable AnalyticsListener analyticsListener,
int expectedPlayerEndedCount) { int expectedPlayerEndedCount) {
this.context = context; this.context = context;
@ -387,10 +375,9 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
this.renderersFactory = renderersFactory; this.renderersFactory = renderersFactory;
this.trackSelector = trackSelector; this.trackSelector = trackSelector;
this.loadControl = loadControl; this.loadControl = loadControl;
this.bandwidthMeter = bandwidthMeter;
this.actionSchedule = actionSchedule; this.actionSchedule = actionSchedule;
this.eventListener = eventListener; this.eventListener = eventListener;
this.videoRendererEventListener = videoRendererEventListener;
this.audioRendererEventListener = audioRendererEventListener;
this.analyticsListener = analyticsListener; this.analyticsListener = analyticsListener;
this.timelines = new ArrayList<>(); this.timelines = new ArrayList<>();
this.manifests = new ArrayList<>(); this.manifests = new ArrayList<>();
@ -419,17 +406,11 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
try { try {
player = player =
new TestSimpleExoPlayer( new TestSimpleExoPlayer(
context, renderersFactory, trackSelector, loadControl, clock); context, renderersFactory, trackSelector, loadControl, bandwidthMeter, clock);
player.addListener(ExoPlayerTestRunner.this); player.addListener(ExoPlayerTestRunner.this);
if (eventListener != null) { if (eventListener != null) {
player.addListener(eventListener); player.addListener(eventListener);
} }
if (videoRendererEventListener != null) {
player.addVideoDebugListener(videoRendererEventListener);
}
if (audioRendererEventListener != null) {
player.addAudioDebugListener(audioRendererEventListener);
}
if (analyticsListener != null) { if (analyticsListener != null) {
player.addAnalyticsListener(analyticsListener); player.addAnalyticsListener(analyticsListener);
} }
@ -648,6 +629,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
RenderersFactory renderersFactory, RenderersFactory renderersFactory,
TrackSelector trackSelector, TrackSelector trackSelector,
LoadControl loadControl, LoadControl loadControl,
BandwidthMeter bandwidthMeter,
Clock clock) { Clock clock) {
super( super(
context, context,
@ -655,7 +637,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
trackSelector, trackSelector,
loadControl, loadControl,
/* drmSessionManager= */ null, /* drmSessionManager= */ null,
new DefaultBandwidthMeter.Builder().build(), bandwidthMeter,
new AnalyticsCollector.Factory(), new AnalyticsCollector.Factory(),
clock, clock,
Looper.myLooper()); Looper.myLooper());

View File

@ -15,12 +15,10 @@
*/ */
package com.google.android.exoplayer2.testutil; package com.google.android.exoplayer2.testutil;
import android.os.Handler;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Timeline.Period; import com.google.android.exoplayer2.Timeline.Period;
import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.MediaSourceEventListener;
import com.google.android.exoplayer2.source.MediaSourceEventListener.EventDispatcher; import com.google.android.exoplayer2.source.MediaSourceEventListener.EventDispatcher;
import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
@ -38,12 +36,9 @@ public class FakeAdaptiveMediaSource extends FakeMediaSource {
Timeline timeline, Timeline timeline,
Object manifest, Object manifest,
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Handler eventHandler,
MediaSourceEventListener eventListener,
FakeChunkSource.Factory chunkSourceFactory) { FakeChunkSource.Factory chunkSourceFactory) {
super(timeline, manifest, trackGroupArray); super(timeline, manifest, trackGroupArray);
this.chunkSourceFactory = chunkSourceFactory; this.chunkSourceFactory = chunkSourceFactory;
addEventListener(eventHandler, eventListener);
} }
@Override @Override

View File

@ -16,7 +16,6 @@
package com.google.android.exoplayer2.testutil; package com.google.android.exoplayer2.testutil;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.testutil.FakeDataSet.FakeData; import com.google.android.exoplayer2.testutil.FakeDataSet.FakeData;
import com.google.android.exoplayer2.testutil.FakeDataSet.FakeData.Segment; import com.google.android.exoplayer2.testutil.FakeDataSet.FakeData.Segment;
@ -24,7 +23,6 @@ import com.google.android.exoplayer2.upstream.BaseDataSource;
import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSourceException; import com.google.android.exoplayer2.upstream.DataSourceException;
import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DataSpec;
import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@ -40,14 +38,9 @@ public class FakeDataSource extends BaseDataSource {
*/ */
public static class Factory implements DataSource.Factory { public static class Factory implements DataSource.Factory {
protected final TransferListener transferListener;
protected FakeDataSet fakeDataSet; protected FakeDataSet fakeDataSet;
protected boolean isNetwork; protected boolean isNetwork;
public Factory(@Nullable TransferListener transferListener) {
this.transferListener = transferListener;
}
public final Factory setFakeDataSet(FakeDataSet fakeDataSet) { public final Factory setFakeDataSet(FakeDataSet fakeDataSet) {
this.fakeDataSet = fakeDataSet; this.fakeDataSet = fakeDataSet;
return this; return this;
@ -60,11 +53,7 @@ public class FakeDataSource extends BaseDataSource {
@Override @Override
public DataSource createDataSource() { public DataSource createDataSource() {
FakeDataSource dataSource = new FakeDataSource(fakeDataSet, isNetwork); return new FakeDataSource(fakeDataSet, isNetwork);
if (transferListener != null) {
dataSource.addTransferListener(transferListener);
}
return dataSource;
} }
} }