private void attachSurface(final MediaPlayer mediaPlayer, Either<Surface, SurfaceHolder> surface) { Either.Consumer<Surface> setSurface = new Either.Consumer<Surface>() { @Override public void accept(Surface value) { mediaPlayer.setSurface(value); } }; Either.Consumer<SurfaceHolder> setDisplay = new Either.Consumer<SurfaceHolder>() { @Override public void accept(SurfaceHolder value) { mediaPlayer.setDisplay(value); } }; surface.apply(setSurface, setDisplay); }
@Override public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) { this.eitherSurface = Either.left(new Surface(surfaceTexture)); notifyListeners(eitherSurface); callbacks.clear(); }
@Override public void surfaceCreated(SurfaceHolder surfaceHolder) { this.eitherSurface = Either.right(surfaceHolder); notifyListeners(eitherSurface); callbacks.clear(); }
@Test public void givenMediaPlayerIsPreparedWithSurfaceHolder_whenStarting_thenSetsDisplay() { SurfaceHolder surfaceHolder = mock(SurfaceHolder.class); Either<Surface, SurfaceHolder> eitherSurface = Either.right(surfaceHolder); givenMediaPlayerIsPreparedWith(eitherSurface); reset(mediaPlayer); facade.start(eitherSurface); verify(mediaPlayer).setDisplay(surfaceHolder); }
@Test public void givenSurfaceRequesterReturnsSurface_whenPreparing_thenSetsSurface() { Surface surface = mock(Surface.class); Either<Surface, SurfaceHolder> eitherSurface = Either.left(surface); givenSurfaceRequesterReturns(eitherSurface); givenMediaPlayerIsPreparedWith(eitherSurface); verify(mediaPlayer).setSurface(surface); }
@Test public void givenSurfaceRequesterReturnsSurfaceHolder_whenPreparing_thenSetsDisplay() { SurfaceHolder surfaceHolder = mock(SurfaceHolder.class); Either<Surface, SurfaceHolder> eitherSurface = Either.right(surfaceHolder); givenSurfaceRequesterReturns(eitherSurface); givenMediaPlayerIsPreparedWith(eitherSurface); verify(mediaPlayer).setDisplay(surfaceHolder); }
@Before public void setUp() { NoPlayerLog.setLoggingEnabled(false); facade = new AndroidMediaPlayerFacade(context, forwarder, audioManager, trackSelector, playbackStateChecker, mediaPlayerCreator); given(mediaPlayerCreator.createMediaPlayer()).willReturn(mediaPlayer); given(playbackStateChecker.isInPlaybackState(eq(mediaPlayer), any(PlaybackStateChecker.PlaybackState.class))).willReturn(IS_IN_PLAYBACK_STATE); eitherSurface = Either.left(surface); givenSurfaceRequesterReturns(eitherSurface); given(forwarder.onPreparedListener()).willReturn(preparedListener); given(forwarder.onCompletionListener()).willReturn(completionListener); given(forwarder.onErrorListener()).willReturn(errorListener); given(forwarder.onSizeChangedListener()).willReturn(videoSizeChangedListener); }