use of androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector in project media by androidx.
the class MediaPeriodQueueTest method setUp.
@Before
public void setUp() {
AnalyticsCollector analyticsCollector = new DefaultAnalyticsCollector(Clock.DEFAULT);
analyticsCollector.setPlayer(new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(), Looper.getMainLooper());
mediaPeriodQueue = new MediaPeriodQueue(analyticsCollector, new Handler(Looper.getMainLooper()));
mediaSourceList = new MediaSourceList(mock(MediaSourceList.MediaSourceListInfoRefreshListener.class), analyticsCollector, new Handler(Looper.getMainLooper()), PlayerId.UNSET);
rendererCapabilities = new RendererCapabilities[0];
trackSelector = mock(TrackSelector.class);
allocator = mock(Allocator.class);
}
use of androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector in project media by androidx.
the class MediaSourceListTest method setUp.
@Before
public void setUp() {
AnalyticsCollector analyticsCollector = new DefaultAnalyticsCollector(Clock.DEFAULT);
analyticsCollector.setPlayer(new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(), Looper.getMainLooper());
mediaSourceList = new MediaSourceList(mock(MediaSourceList.MediaSourceListInfoRefreshListener.class), analyticsCollector, Util.createHandlerForCurrentOrMainLooper(), PlayerId.UNSET);
}
use of androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector in project media by androidx.
the class TestExoPlayerBuilder method build.
/**
* Builds an {@link ExoPlayer} using the provided values or their defaults.
*/
public ExoPlayer build() {
Assertions.checkNotNull(looper, "TestExoPlayer builder run on a thread without Looper and no Looper specified.");
// Do not update renderersFactory and renderers here, otherwise their getters may
// return different values before and after build() is called, making them confusing.
RenderersFactory playerRenderersFactory = renderersFactory;
if (playerRenderersFactory == null) {
playerRenderersFactory = (eventHandler, videoRendererEventListener, audioRendererEventListener, textRendererOutput, metadataRendererOutput) -> renderers != null ? renderers : new Renderer[] { new FakeVideoRenderer(eventHandler, videoRendererEventListener), new FakeAudioRenderer(eventHandler, audioRendererEventListener) };
}
ExoPlayer.Builder builder = new ExoPlayer.Builder(context, playerRenderersFactory).setTrackSelector(trackSelector).setLoadControl(loadControl).setBandwidthMeter(bandwidthMeter).setAnalyticsCollector(new DefaultAnalyticsCollector(clock)).setClock(clock).setUseLazyPreparation(useLazyPreparation).setLooper(looper).setSeekBackIncrementMs(seekBackIncrementMs).setSeekForwardIncrementMs(seekForwardIncrementMs);
if (mediaSourceFactory != null) {
builder.setMediaSourceFactory(mediaSourceFactory);
}
return builder.build();
}
use of androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector in project media by androidx.
the class DefaultAnalyticsCollectorTest method recursiveListenerInvocation_arrivesInCorrectOrder.
@Test
public void recursiveListenerInvocation_arrivesInCorrectOrder() {
AnalyticsCollector analyticsCollector = new DefaultAnalyticsCollector(Clock.DEFAULT);
analyticsCollector.setPlayer(new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(), Looper.myLooper());
AnalyticsListener listener1 = mock(AnalyticsListener.class);
AnalyticsListener listener2 = spy(new AnalyticsListener() {
@Override
public void onPlayerError(EventTime eventTime, PlaybackException error) {
analyticsCollector.onSurfaceSizeChanged(/* width= */
0, /* height= */
0);
}
});
AnalyticsListener listener3 = mock(AnalyticsListener.class);
analyticsCollector.addListener(listener1);
analyticsCollector.addListener(listener2);
analyticsCollector.addListener(listener3);
analyticsCollector.onPlayerError(ExoPlaybackException.createForSource(new IOException(), PlaybackException.ERROR_CODE_IO_UNSPECIFIED));
InOrder inOrder = inOrder(listener1, listener2, listener3);
inOrder.verify(listener1).onPlayerError(any(), any());
inOrder.verify(listener2).onPlayerError(any(), any());
inOrder.verify(listener3).onPlayerError(any(), any());
inOrder.verify(listener1).onSurfaceSizeChanged(any(), eq(0), eq(0));
inOrder.verify(listener2).onSurfaceSizeChanged(any(), eq(0), eq(0));
inOrder.verify(listener3).onSurfaceSizeChanged(any(), eq(0), eq(0));
}
Aggregations