@Test public void givenBufferStateListeners_whenNotifyingOfBufferCompleted_thenAllTheListenersAreNotifiedAppropriately() { bufferStateListeners.onBufferCompleted(); verify(aBufferStateListener).onBufferCompleted(); verify(anotherBufferStateListener).onBufferCompleted(); } }
@Test public void givenPositionThatDiffersFromPlayheadPosition_whenStartingPlayAtVideoPosition_thenNotifiesBufferStateListenersThatBufferStarted() { long differentPositionInMillis = givenPositionThatDiffersFromPlayheadPosition(); player.playAt(differentPositionInMillis); verify(bufferStateListener).onBufferStarted(); }
@Override public void loadVideo(final Uri uri, final Options options) { if (mediaPlayer.hasPlayedContent()) { stop(); } assertPlayerViewIsAttached(); createSurfaceByShowingVideoContainer(); listenersHolder.getBufferStateListeners().onBufferStarted(); requestSurface(new SurfaceRequester.Callback() { @Override public void onSurfaceReady(Either<Surface, SurfaceHolder> surface) { mediaPlayer.prepareVideo(uri, surface); } }); }
/** * Workaround to fix some devices (nexus 7 2013 in particular) from natively crashing the mediaplayer * by starting the mediaplayer before seeking it. */ private void initialSeekWorkaround(Either<Surface, SurfaceHolder> surface, final long initialPlayPositionInMillis) throws IllegalStateException { listenersHolder.getBufferStateListeners().onBufferStarted(); initialisePlaybackForSeeking(surface); delayedActionExecutor.performAfterDelay(new DelayedActionExecutor.Action() { @Override public void perform() { seekWithIntentToPlay(initialPlayPositionInMillis); } }, INITIAL_PLAY_SEEK_DELAY_IN_MILLIS); }
@Override public void onBufferStart() { bufferStateListener.onBufferStarted(); }
@Override public void onBufferStarted() { for (NoPlayer.BufferStateListener listener : listeners) { listener.onBufferStarted(); } }
@Override public boolean onError(MediaPlayer mp, int what, int extra) { bufferStateListener.onBufferCompleted(); NoPlayer.PlayerError error = ErrorFactory.createErrorFrom(what, extra); errorListener.onError(error); return true; } }
@Test public void whenLoadingVideoWithTimeout_thenNotifiesBufferStateListenersThatBufferStarted() { player.loadVideoWithTimeout(URI, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(bufferStateListener).onBufferStarted(); }
@Override public void onBufferComplete() { bufferStateListener.onBufferCompleted(); } }
@Override public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { if (playbackState == Player.STATE_BUFFERING) { bufferStateListener.onBufferStarted(); } else if (playbackState == Player.STATE_READY) { bufferStateListener.onBufferCompleted(); } }
@Test public void whenLoadingVideo_thenNotifiesBufferStateListenersThatBufferStarted() { player.loadVideo(URI, OPTIONS); verify(bufferStateListener).onBufferStarted(); }
@Override public void onPrepared(MediaPlayer mp) { bufferStateListener.onBufferCompleted(); } }
@Override public void onBufferCompleted() { for (NoPlayer.BufferStateListener listener : listeners) { listener.onBufferCompleted(); } } }
@Test public void givenBufferStateListeners_whenNotifyingOfBufferStarted_thenAllTheListenersAreNotifiedAppropriately() { bufferStateListeners.onBufferStarted(); verify(aBufferStateListener).onBufferStarted(); verify(anotherBufferStateListener).onBufferStarted(); }