@Override public void attach(PlayerView playerView) { this.playerView = playerView; listenersHolder.addStateChangedListener(playerView.getStateChangedListener()); listenersHolder.addVideoSizeChangedListener(playerView.getVideoSizeChangedListener()); }
@Override public void detach(PlayerView playerView) { listenersHolder.removeStateChangedListener(playerView.getStateChangedListener()); listenersHolder.removeVideoSizeChangedListener(playerView.getVideoSizeChangedListener()); removeSubtitleRenderer(); this.playerView = null; }
@Test public void givenPlayerIsInitialised_whenAttachingPlayerView_thenAddsPlayerViewVideoSizeChangedListenerToListenersHolder() { player.initialise(); player.attach(playerView); ArgumentCaptor<NoPlayer.VideoSizeChangedListener> argumentCaptor = ArgumentCaptor.forClass(NoPlayer.VideoSizeChangedListener.class); verify(listenersHolder, times(2)).addVideoSizeChangedListener(argumentCaptor.capture()); NoPlayer.VideoSizeChangedListener videoSizeChangedListener = argumentCaptor.getAllValues().get(1); assertThat(videoSizeChangedListener).isSameAs(playerView.getVideoSizeChangedListener()); }
@Test public void whenLoadingVideo_thenAddsVideoSizeChangedListenerToListenersHolder() { player.loadVideo(uri, OPTIONS); verify(listenersHolder).addVideoSizeChangedListener(playerView.getVideoSizeChangedListener()); }
@Override public void detach(PlayerView playerView) { clearSurfaceHolderCallbacks(); listenersHolder.removeStateChangedListener(playerView.getStateChangedListener()); listenersHolder.removeVideoSizeChangedListener(playerView.getVideoSizeChangedListener()); buggyVideoDriverPreventer.clear(playerView.getContainerView()); surfaceRequester = null; containerView = null; }
@Test public void whenDetachingPlayerView_thenRemovesVideoSizeChangedListener() { PlayerView playerView = mock(PlayerView.class); NoPlayer.VideoSizeChangedListener videoSizeChangedListener = mock(NoPlayer.VideoSizeChangedListener.class); given(playerView.getVideoSizeChangedListener()).willReturn(videoSizeChangedListener); player.detach(playerView); verify(listenersHolder).removeVideoSizeChangedListener(videoSizeChangedListener); }
@Test public void whenAttachingPlayerView_thenAddsVideoSizeChangedListener() { NoPlayer.VideoSizeChangedListener videoSizeChangedListener = mock(NoPlayer.VideoSizeChangedListener.class); given(playerView.getVideoSizeChangedListener()).willReturn(videoSizeChangedListener); player.attach(playerView); verify(listenersHolder).addVideoSizeChangedListener(videoSizeChangedListener); }
@Override public void attach(PlayerView playerView) { containerView = playerView.getContainerView(); buggyVideoDriverPreventer.preventVideoDriverBug(this, containerView); listenersHolder.addVideoSizeChangedListener(playerView.getVideoSizeChangedListener()); listenersHolder.addStateChangedListener(playerView.getStateChangedListener()); PlayerSurfaceHolder playerSurfaceHolder = playerView.getPlayerSurfaceHolder(); surfaceRequester = playerSurfaceHolder.getSurfaceRequester(); }
given(playerSurfaceHolder.getSurfaceRequester()).willReturn(surfaceRequester); given(playerView.getStateChangedListener()).willReturn(stateChangeListener); given(playerView.getVideoSizeChangedListener()).willReturn(videoSizeChangedListener); given(playerView.getContainerView()).willReturn(containerView); doAnswer(new Answer<Void>() {
@Before public void setUp() { given(playerView.getPlayerSurfaceHolder()).willReturn(playerSurfaceHolder); given(playerView.getStateChangedListener()).willReturn(stateChangeListener); given(playerView.getVideoSizeChangedListener()).willReturn(videoSizeChangedListener); given(playerView.getContainerView()).willReturn(containerView); given(listenersHolder.getErrorListeners()).willReturn(errorListener); given(listenersHolder.getPreparedListeners()).willReturn(preparedListener); given(listenersHolder.getBufferStateListeners()).willReturn(bufferStateListener); given(listenersHolder.getCompletionListeners()).willReturn(completionListener); given(listenersHolder.getStateChangedListeners()).willReturn(stateChangedListener); given(listenersHolder.getInfoListeners()).willReturn(infoListener); given(listenersHolder.getVideoSizeChangedListeners()).willReturn(videoSizeChangedListener); given(listenersHolder.getBitrateChangedListeners()).willReturn(bitrateChangedListener); player = new ExoPlayerTwoImpl( exoPlayerFacade, listenersHolder, forwarder, loadTimeout, heart, drmSessionCreator, mediaCodecSelector ); } }