@Override public void loadVideo(final Uri uri, final Options options) { if (exoPlayer.hasPlayedContent()) { stop(); } assertPlayerViewIsAttached(); exoPlayer.loadVideo(playerView.getPlayerSurfaceHolder(), drmSessionCreator, uri, options, forwarder, mediaCodecSelector); createSurfaceByShowingVideoContainer(); }
@Test public void givenPlayerHasNotPlayedVideo_whenLoadingVideoWithTimeout_thenPlayerResourcesAreNotReleased() { given(exoPlayerFacade.hasPlayedContent()).willReturn(false); player.attach(playerView); player.loadVideoWithTimeout(URI, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(stateChangedListener, never()).onVideoStopped(); verify(loadTimeout, never()).cancel(); verify(heart, never()).stopBeatingHeart(); verify(exoPlayerFacade, never()).release(); } }
@Test public void givenPlayerHasNotPlayedVideo_whenLoadingVideo_thenPlayerResourcesAreNotReleased() { given(exoPlayerFacade.hasPlayedContent()).willReturn(false); player.attach(playerView); player.loadVideo(URI, OPTIONS); verify(stateChangedListener, never()).onVideoStopped(); verify(loadTimeout, never()).cancel(); verify(heart, never()).stopBeatingHeart(); verify(exoPlayerFacade, never()).release(); }
@Test public void givenPlayerHasPlayedVideo_whenLoadingVideo_thenPlayerIsReleased_andNotListeners() { given(exoPlayerFacade.hasPlayedContent()).willReturn(true); player.attach(playerView); player.loadVideo(URI, OPTIONS); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(exoPlayerFacade).release(); verify(listenersHolder, never()).clear(); }
@Test public void givenPlayerHasPlayedVideo_whenLoadingVideoWithTimeout_thenPlayerResourcesAreReleased_andNotListeners() { given(exoPlayerFacade.hasPlayedContent()).willReturn(true); player.attach(playerView); player.loadVideoWithTimeout(URI, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(exoPlayerFacade).release(); verify(listenersHolder, never()).clear(); }