@Test public void testErrorListenerCalledOnCompleteCalledWhenReturnFalse() { Mockito.when(errorListener.onError(mediaPlayer, 0, 0)).thenReturn(false); shadowMediaPlayer.invokeErrorListener(321, 11); Mockito.verify(errorListener).onError(mediaPlayer, 321, 11); Mockito.verify(completionListener).onCompletion(mediaPlayer); }
@Test public void testPauseReschedulesCompletionCallback() { shadowMediaPlayer.setState(PREPARED); mediaPlayer.start(); scheduler.advanceBy(200); mediaPlayer.pause(); scheduler.advanceBy(800); Mockito.verifyZeroInteractions(completionListener); mediaPlayer.start(); scheduler.advanceBy(799); Mockito.verifyZeroInteractions(completionListener); scheduler.advanceBy(1); Mockito.verify(completionListener).onCompletion(mediaPlayer); Mockito.verifyNoMoreInteractions(completionListener); assertThat(scheduler.advanceToLastPostedRunnable()).isFalse(); Mockito.verifyZeroInteractions(completionListener); }
@Test public void testSeekDuringPlaybackReschedulesCompletionCallback() { shadowMediaPlayer.setState(PREPARED); mediaPlayer.start(); scheduler.advanceBy(300); mediaPlayer.seekTo(400); scheduler.advanceBy(599); Mockito.verifyZeroInteractions(completionListener); scheduler.advanceBy(1); Mockito.verify(completionListener).onCompletion(mediaPlayer); Mockito.verifyNoMoreInteractions(completionListener); assertThat(shadowMediaPlayer.getState()).isEqualTo(PLAYBACK_COMPLETED); assertThat(scheduler.advanceToLastPostedRunnable()).isFalse(); Mockito.verifyZeroInteractions(completionListener); }
@Override public void onCompletion(MediaPlayer mp) { mCurrentState = STATE_PLAYBACK_COMPLETED; // mTargetState = STATE_PLAYBACK_COMPLETED; if (mOnCompletionListener != null) mOnCompletionListener.onCompletion(mp); } };
@Override public void onCompletion(MediaPlayer mp) { //forward event along if(mOnCompletionListener != null) mOnCompletionListener.onCompletion(mp); } };
/** * Simulates end-of-playback. Changes the player into PLAYBACK_COMPLETED state * and calls * {@link MediaPlayer.OnCompletionListener#onCompletion(MediaPlayer) * onCompletion()} if a listener has been set. */ public void invokeCompletionListener() { state = PLAYBACK_COMPLETED; if (completionListener == null) return; completionListener.onCompletion(player); }
/** * Simulates end-of-playback. Changes the player into PLAYBACK_COMPLETED state * and calls * {@link MediaPlayer.OnCompletionListener#onCompletion(MediaPlayer) * onCompletion()} if a listener has been set. */ public void invokeCompletionListener() { state = PLAYBACK_COMPLETED; if (completionListener == null) return; completionListener.onCompletion(player); }
/** * Simulates end-of-playback. Changes the player into PLAYBACK_COMPLETED state * and calls * {@link MediaPlayer.OnCompletionListener#onCompletion(MediaPlayer) * onCompletion()} if a listener has been set. */ public void invokeCompletionListener() { state = PLAYBACK_COMPLETED; if (completionListener == null) return; completionListener.onCompletion(player); }
@Override public void onCompletion(MediaPlayer mp) { mCurrentState = STATE_PLAYBACK_COMPLETED; // mTargetState = STATE_PLAYBACK_COMPLETED; if (mOnCompletionListener != null) mOnCompletionListener.onCompletion(mp); } };
onPlayerStateUpdated(playWhenReady, playerState); if (helper.onCompletionListener != null) { helper.onCompletionListener.onCompletion(mp);
private void setMediaPlayerListener(final MediaPlayer player, final MediaPlayer.OnCompletionListener onCompletionListener, final MediaPlayer.OnErrorListener onErrorListener) { player.setOnCompletionListener(mp -> { Log.d(TAG, "OnCompletionListener::onCompletion"); // could not call stopPlay immediately, otherwise the second sound // could not play, thus no complete notification // TODO discover why? Observable.timer(50, TimeUnit.MILLISECONDS).subscribe(aLong -> { stopPlay(); onCompletionListener.onCompletion(mp); }, throwable -> Log.d(TAG, "OnCompletionListener::onError, " + throwable.getMessage())); }); player.setOnErrorListener((mp, what, extra) -> { Log.d(TAG, "OnErrorListener::onError" + what + ", " + extra); onErrorListener.onError(mp, what, extra); stopPlay(); return true; }); }
@Override public void onCompletion(MediaPlayer mp) { currentState = State.COMPLETED; if (onCompletionListener != null) { onCompletionListener.onCompletion(mediaPlayer); } }
@Override public void onCompletion(MediaPlayer mp) { calmDownAndStopRendering(); visualizerWrapper.setEnabled(false); if (innerOnCompletionListener != null) { innerOnCompletionListener.onCompletion(mp); } }
Mockito.verify(completionListener).onCompletion(mediaPlayer); Mockito.verifyNoMoreInteractions(seekListener); assertThat(scheduler.getCurrentTime()).isEqualTo(startTime + 750);
@Test public void testPlaybackProgress() { shadowMediaPlayer.setState(PREPARED); // This time offset is just to make sure that it doesn't work by // accident because the offsets are calculated relative to 0. scheduler.advanceBy(100); mediaPlayer.start(); assertThat(shadowMediaPlayer.getCurrentPosition()).isEqualTo(0); assertThat(shadowMediaPlayer.getState()).isEqualTo(STARTED); scheduler.advanceBy(500); assertThat(shadowMediaPlayer.getCurrentPosition()).isEqualTo(500); assertThat(shadowMediaPlayer.getState()).isEqualTo(STARTED); scheduler.advanceBy(499); assertThat(shadowMediaPlayer.getCurrentPosition()).isEqualTo(999); assertThat(shadowMediaPlayer.getState()).isEqualTo(STARTED); Mockito.verifyZeroInteractions(completionListener); scheduler.advanceBy(1); assertThat(shadowMediaPlayer.getCurrentPosition()).isEqualTo(1000); assertThat(shadowMediaPlayer.getState()).isEqualTo(PLAYBACK_COMPLETED); Mockito.verify(completionListener).onCompletion(mediaPlayer); Mockito.verifyNoMoreInteractions(completionListener); scheduler.advanceBy(1); assertThat(shadowMediaPlayer.getCurrentPosition()).isEqualTo(1000); assertThat(shadowMediaPlayer.getState()).isEqualTo(PLAYBACK_COMPLETED); Mockito.verifyZeroInteractions(completionListener); }
/** * If the looping mode was being set to {@code true} * {@link MediaPlayer#setLooping(boolean)}, the MediaPlayer object shall * remain in the Started state. */ @Test public void testSetLoopingCalledWhilePlaying() { shadowMediaPlayer.setState(PREPARED); mediaPlayer.start(); scheduler.advanceBy(200); mediaPlayer.setLooping(true); scheduler.advanceBy(1100); Mockito.verifyZeroInteractions(completionListener); assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(300); mediaPlayer.setLooping(false); scheduler.advanceBy(699); Mockito.verifyZeroInteractions(completionListener); scheduler.advanceBy(1); Mockito.verify(completionListener).onCompletion(mediaPlayer); }
@Override public void onCompletion(MediaPlayer mp) { finish(); MediaPlayer.OnCompletionListener originalListener = mSoundPlayer.getMediaCompletionListener(); if (originalListener != null) { originalListener.onCompletion(mp); } } }, mVideoView);
@Test public void testCompletionListener() { shadowMediaPlayer.invokeCompletionListener(); Mockito.verify(completionListener).onCompletion(mediaPlayer); }
@Test public void testErrorCausesOnCompleteCalledWhenNoErrorListener() { mediaPlayer.setOnErrorListener(null); shadowMediaPlayer.invokeErrorListener(321, 21); Mockito.verifyZeroInteractions(errorListener); Mockito.verify(completionListener).onCompletion(mediaPlayer); }
/** * Simulates end-of-playback. Changes the player into PLAYBACK_COMPLETED state * and calls * {@link MediaPlayer.OnCompletionListener#onCompletion(MediaPlayer) * onCompletion()} if a listener has been set. */ public void invokeCompletionListener() { state = PLAYBACK_COMPLETED; if (completionListener == null) return; completionListener.onCompletion(player); }