mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Move playback tests off deprecated APIs
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=210077548
This commit is contained in:
parent
a71e28440d
commit
38f2f352f9
@ -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) {
|
||||||
|
@ -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),
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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());
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user