@Override public void stop () { if (player == null) return; if (isPrepared) { player.seekTo(0); } player.stop(); isPrepared = false; }
@Override public void stop () { if (player == null) return; if (isPrepared) { player.seekTo(0); } player.stop(); isPrepared = false; }
@Override public void seekTo(long time) { mediaPlayer.seekTo((int) time); }
public long seek(final long whereto) { mCurrentMediaPlayer.seekTo((int) whereto); return whereto; }
public void onCompletion(MediaPlayer mediaPlayer) { mediaPlayer.seekTo(0); } };
public long seek(final long whereto) { mCurrentMediaPlayer.seekTo((int) whereto); return whereto; }
public void onCompletion(MediaPlayer mediaPlayer) { mediaPlayer.seekTo(0); } };
@Override public void onStopTrackingTouch(SeekBar seekBar) { mp.seekTo(SeekValue); } });
public void setPosition (float position) { if (player == null) return; try { if (!isPrepared) { player.prepare(); isPrepared = true; } player.seekTo((int)(position * 1000)); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
public void setPosition (float position) { if (player == null) return; try { if (!isPrepared) { player.prepare(); isPrepared = true; } player.seekTo((int)(position * 1000)); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
@Override public void seekTo(long time) { try { mediaPlayer.seekTo((int) time); } catch (IllegalStateException e) { e.printStackTrace(); } }
@Override public void run() { try { mp.prepare(); mp.seekTo(0); play.setVisible(true); } catch (Exception e) { goBlooey(e); } } }, 100);
@Test public void testReleaseCancelsSeekCallback() { shadowMediaPlayer.setState(STARTED); mediaPlayer.seekTo(100); MediaEvent e = Mockito.mock(MediaEvent.class); shadowMediaPlayer.postEventDelayed(e, 200); mediaPlayer.release(); assertThat(scheduler.size()).isEqualTo(0); }
@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); }
@Test public void testResetCancelsCallbacks() { shadowMediaPlayer.setState(STARTED); mediaPlayer.seekTo(100); MediaEvent e = Mockito.mock(MediaEvent.class); shadowMediaPlayer.postEventDelayed(e, 200); mediaPlayer.reset(); assertThat(scheduler.size()).isEqualTo(0); }
@Config(minSdk = O) @Test public void testSeekToMode() { 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(); scheduler.advanceBy(400); assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(400); mediaPlayer.seekTo(600, MediaPlayer.SEEK_CLOSEST); scheduler.advanceBy(0); assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(600); }
@Test public void testSeekWhileSeekingWhilePaused() { shadowMediaPlayer.setState(PAUSED); shadowMediaPlayer.setSeekDelay(100); scheduler.advanceBy(200); mediaPlayer.seekTo(450); scheduler.advanceBy(50); mediaPlayer.seekTo(600); scheduler.advanceBy(99); assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(0); Mockito.verifyZeroInteractions(seekListener); scheduler.advanceBy(1); assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(600); Mockito.verify(seekListener).onSeekComplete(mediaPlayer); // Check that no completion callback or alternative // seek callbacks have been scheduled. assertThat(scheduler.advanceToLastPostedRunnable()).isFalse(); }
@Test public void testSeekWhilePausedDelayedCallback() { shadowMediaPlayer.setState(PAUSED); shadowMediaPlayer.setSeekDelay(100); scheduler.advanceBy(200); mediaPlayer.seekTo(450); scheduler.advanceBy(99); assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(0); Mockito.verifyZeroInteractions(seekListener); scheduler.advanceBy(1); assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(450); Mockito.verify(seekListener).onSeekComplete(mediaPlayer); // Check that no completion callback or alternative // seek callbacks have been scheduled. assertThat(scheduler.advanceToLastPostedRunnable()).isFalse(); }
@Test public void testSeekBeforeStart() { shadowMediaPlayer.setSeekDelay(-1); for (State state : seekableStates) { shadowMediaPlayer.setState(state); shadowMediaPlayer.setCurrentPosition(500); mediaPlayer.seekTo(-1); shadowMediaPlayer.invokeSeekCompleteListener(); assertThat(mediaPlayer.getCurrentPosition()).named( "Current postion while " + state).isEqualTo(0); assertThat(shadowMediaPlayer.getState()).named("Final state " + state) .isEqualTo(state); } }
@Test public void testSeekPastEnd() { shadowMediaPlayer.setSeekDelay(-1); for (State state : seekableStates) { shadowMediaPlayer.setState(state); shadowMediaPlayer.setCurrentPosition(500); mediaPlayer.seekTo(1001); shadowMediaPlayer.invokeSeekCompleteListener(); assertThat(mediaPlayer.getCurrentPosition()).named( "Current postion while " + state).isEqualTo(1000); assertThat(shadowMediaPlayer.getState()).named("Final state " + state) .isEqualTo(state); } }