List of usage examples for android.media MediaPlayer seekTo
public void seekTo(int msec) throws IllegalStateException
From source file:com.nd.android.u.square.service.MusicPlaybackService.java
/** * Called when media player is done preparing. *//*from w w w. j ava 2 s . c om*/ public void onPrepared(MediaPlayer player) { Log.d(TAG, "prepared: " + mSongTitle); // The media player is done preparing. That means we can start playing! mState = State.Playing; updateNotification(mSongTitle + ""); configAndStartMediaPlayer(); if (mPlayingItem.lastPosition > 0 && mPlayingItem.lastPosition <= player.getDuration()) player.seekTo(mPlayingItem.lastPosition); }
From source file:github.daneren2005.dsub.service.DownloadServiceImpl.java
private synchronized void doPlay(final DownloadFile downloadFile, final int position, final boolean start) { try {/*from w w w. j a va2 s. c om*/ downloadFile.setPlaying(true); final File file = downloadFile.isCompleteFileAvailable() ? downloadFile.getCompleteFile() : downloadFile.getPartialFile(); isPartial = file.equals(downloadFile.getPartialFile()); downloadFile.updateModificationDate(); mediaPlayer.setOnCompletionListener(null); mediaPlayer.reset(); setPlayerState(IDLE); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); String dataSource = file.getPath(); if (isPartial) { if (proxy == null) { proxy = new StreamProxy(this); proxy.start(); } dataSource = String.format("http://127.0.0.1:%d/%s", proxy.getPort(), URLEncoder.encode(dataSource, Constants.UTF_8)); Log.i(TAG, "Data Source: " + dataSource); } else if (proxy != null) { proxy.stop(); proxy = null; } mediaPlayer.setDataSource(dataSource); setPlayerState(PREPARING); mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { public void onBufferingUpdate(MediaPlayer mp, int percent) { Log.i(TAG, "Buffered " + percent + "%"); if (percent == 100) { mediaPlayer.setOnBufferingUpdateListener(null); } } }); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mediaPlayer) { try { setPlayerState(PREPARED); synchronized (DownloadServiceImpl.this) { if (position != 0) { Log.i(TAG, "Restarting player from position " + position); mediaPlayer.seekTo(position); } cachedPosition = position; if (start) { mediaPlayer.start(); setPlayerState(STARTED); } else { setPlayerState(PAUSED); } } lifecycleSupport.serializeDownloadQueue(); } catch (Exception x) { handleError(x); } } }); setupHandlers(downloadFile, isPartial); mediaPlayer.prepareAsync(); } catch (Exception x) { handleError(x); } }
From source file:org.kontalk.ui.AbstractComposeFragment.java
private boolean prepareAudio(File audioFile, final AudioContentViewControl view, final long messageId) { stopMediaPlayerUpdater();/*from w w w. j av a2s . co m*/ try { AudioFragment audio = getAudioFragment(); final MediaPlayer player = audio.getPlayer(); player.setAudioStreamType(AudioManager.STREAM_MUSIC); player.setDataSource(audioFile.getAbsolutePath()); player.prepare(); // prepare was successful audio.setMessageId(messageId); mAudioControl = view; view.prepare(player.getDuration()); player.seekTo(view.getPosition()); view.setProgressChangeListener(true); player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { stopMediaPlayerUpdater(); view.end(); AudioFragment audio = getAudioFragment(); if (audio != null) { // this is mainly to get the wake lock released audio.pausePlaying(); audio.seekPlayerTo(0); } setAudioStatus(AudioContentView.STATUS_ENDED); } }); return true; } catch (IOException e) { Toast.makeText(getActivity(), R.string.err_file_not_found, Toast.LENGTH_SHORT).show(); return false; } }
From source file:net.sourceforge.kalimbaradio.androidapp.service.DownloadServiceImpl.java
private synchronized void doPlay(final DownloadFile downloadFile, int position, boolean start) { try {//w w w. j a v a2 s. c om final File file = downloadFile.isCompleteFileAvailable() ? downloadFile.getCompleteFile() : downloadFile.getPartialFile(); downloadFile.updateModificationDate(); mediaPlayer.setOnCompletionListener(null); mediaPlayer.reset(); setPlayerState(IDLE); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDataSource(file.getPath()); setPlayerState(PREPARING); mediaPlayer.prepare(); setPlayerState(PREPARED); mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mediaPlayer) { // Acquire a temporary wakelock, since when we return from // this callback the MediaPlayer will release its wakelock // and allow the device to go to sleep. wakeLock.acquire(60000); setPlayerState(COMPLETED); // If COMPLETED and not playing partial file, we are *really" finished // with the song and can move on to the next. if (!file.equals(downloadFile.getPartialFile())) { onSongCompleted(); return; } // If file is not completely downloaded, restart the playback from the current position. int pos = mediaPlayer.getCurrentPosition(); synchronized (DownloadServiceImpl.this) { // Work-around for apparent bug on certain phones: If close (less than ten seconds) to the end // of the song, skip to the next rather than restarting it. Integer duration = downloadFile.getSong().getDuration() == null ? null : downloadFile.getSong().getDuration() * 1000; if (duration != null) { if (Math.abs(duration - pos) < 10000) { LOG.info("Skipping restart from " + pos + " of " + duration); onSongCompleted(); return; } } LOG.info("Requesting restart from " + pos + " of " + duration); reset(); bufferTask = new BufferTask(downloadFile, pos); bufferTask.start(); } } }); if (position != 0) { LOG.info("Restarting player from position " + position); mediaPlayer.seekTo(position); } if (start) { mediaPlayer.start(); setPlayerState(STARTED); } else { setPlayerState(PAUSED); } lifecycleSupport.serializeDownloadQueue(); } catch (Exception x) { handleError(x); } }
From source file:github.daneren2005.dsub.service.DownloadService.java
private synchronized void doPlay(final DownloadFile downloadFile, final int position, final boolean start) { try {//from w w w. jav a 2 s. c o m downloadFile.setPlaying(true); final File file = downloadFile.isCompleteFileAvailable() ? downloadFile.getCompleteFile() : downloadFile.getPartialFile(); boolean isPartial = file.equals(downloadFile.getPartialFile()); downloadFile.updateModificationDate(); subtractPosition = 0; mediaPlayer.setOnCompletionListener(null); mediaPlayer.setOnPreparedListener(null); mediaPlayer.setOnErrorListener(null); mediaPlayer.reset(); setPlayerState(IDLE); try { mediaPlayer.setAudioSessionId(audioSessionId); } catch (Throwable e) { mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); } String dataSource = file.getAbsolutePath(); if (isPartial && !Util.isOffline(this)) { if (proxy == null) { proxy = new BufferProxy(this); proxy.start(); } proxy.setBufferFile(downloadFile); dataSource = proxy.getPrivateAddress(dataSource); Log.i(TAG, "Data Source: " + dataSource); } else if (proxy != null) { proxy.stop(); proxy = null; } mediaPlayer.setDataSource(dataSource); setPlayerState(PREPARING); mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { public void onBufferingUpdate(MediaPlayer mp, int percent) { Log.i(TAG, "Buffered " + percent + "%"); if (percent == 100) { mediaPlayer.setOnBufferingUpdateListener(null); } } }); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mediaPlayer) { try { setPlayerState(PREPARED); synchronized (DownloadService.this) { if (position != 0) { Log.i(TAG, "Restarting player from position " + position); mediaPlayer.seekTo(position); } cachedPosition = position; applyReplayGain(mediaPlayer, downloadFile); if (start || autoPlayStart) { mediaPlayer.start(); setPlayerState(STARTED); // Disable autoPlayStart after done autoPlayStart = false; } else { setPlayerState(PAUSED); onSongProgress(); } } // Only call when starting, setPlayerState(PAUSED) already calls this if (start) { lifecycleSupport.serializeDownloadQueue(); } } catch (Exception x) { handleError(x); } } }); setupHandlers(downloadFile, isPartial, start); mediaPlayer.prepareAsync(); } catch (Exception x) { handleError(x); } }
From source file:net.zorgblub.typhon.fragment.ReadingFragment.java
private void performSkip(boolean toEnd) { if (!ttsIsRunning()) { return;/*from w w w . j av a 2 s . c om*/ } TTSPlaybackItem item = this.ttsPlaybackItemQueue.peek(); if (item != null) { MediaPlayer player = item.getMediaPlayer(); if (toEnd) { player.seekTo(player.getDuration()); } else { player.seekTo(0); } } }
From source file:org.kontalk.ui.ComposeMessageFragment.java
private boolean prepareAudio(File audioFile, final AudioContentViewControl view, final long messageId) { stopMediaPlayerUpdater();/*ww w . j a va2 s .c om*/ try { AudioFragment audio = getAudioFragment(); final MediaPlayer player = audio.getPlayer(); player.setAudioStreamType(AudioManager.STREAM_MUSIC); player.setDataSource(audioFile.getAbsolutePath()); player.prepare(); // prepare was successful audio.setMessageId(messageId); mAudioControl = view; view.prepare(player.getDuration()); player.seekTo(view.getPosition()); view.setProgressChangeListener(true); player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { stopMediaPlayerUpdater(); view.end(); AudioFragment audio = findAudioFragment(); if (audio != null) audio.seekPlayerTo(0); setAudioStatus(AudioContentView.STATUS_ENDED); } }); return true; } catch (IOException e) { Toast.makeText(getActivity(), R.string.err_file_not_found, Toast.LENGTH_SHORT).show(); return false; } }
From source file:com.aujur.ebookreader.activity.ReadingFragment.java
private void performSkip(boolean toEnd) { if (!ttsIsRunning()) { return;//from w w w.j a va2 s . c o m } TTSPlaybackItem item = this.ttsPlaybackItemQueue.peek(); if (item != null) { MediaPlayer player = item.getMediaPlayer(); if (toEnd) { player.seekTo(player.getDuration()); } else { player.seekTo(0); } } }
From source file:github.popeen.dsub.service.DownloadService.java
private synchronized void doPlay(final DownloadFile downloadFile, final int position, final boolean start) { try {/*from w w w .j av a2s . co m*/ subtractPosition = 0; mediaPlayer.setOnCompletionListener(null); mediaPlayer.setOnPreparedListener(null); mediaPlayer.setOnErrorListener(null); mediaPlayer.reset(); setPlayerState(IDLE); try { mediaPlayer.setAudioSessionId(audioSessionId); } catch (Throwable e) { mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); } String dataSource; boolean isPartial = false; if (downloadFile.isStream()) { dataSource = downloadFile.getStream(); Log.i(TAG, "Data Source: " + dataSource); } else { downloadFile.setPlaying(true); final File file = downloadFile.isCompleteFileAvailable() ? downloadFile.getCompleteFile() : downloadFile.getPartialFile(); isPartial = file.equals(downloadFile.getPartialFile()); downloadFile.updateModificationDate(); dataSource = file.getAbsolutePath(); if (isPartial && !Util.isOffline(this)) { if (proxy == null) { proxy = new BufferProxy(this); proxy.start(); } proxy.setBufferFile(downloadFile); dataSource = proxy.getPrivateAddress(dataSource); Log.i(TAG, "Data Source: " + dataSource); } else if (proxy != null) { proxy.stop(); proxy = null; } } mediaPlayer.setDataSource(dataSource); setPlayerState(PREPARING); mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { public void onBufferingUpdate(MediaPlayer mp, int percent) { Log.i(TAG, "Buffered " + percent + "%"); if (percent == 100) { mediaPlayer.setOnBufferingUpdateListener(null); } } }); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mediaPlayer) { try { setPlayerState(PREPARED); synchronized (DownloadService.this) { if (position != 0) { Log.i(TAG, "Restarting player from position " + position); mediaPlayer.seekTo(position); } cachedPosition = position; applyReplayGain(mediaPlayer, downloadFile); if (start || autoPlayStart) { mediaPlayer.start(); applyPlaybackParamsMain(); setPlayerState(STARTED); // Disable autoPlayStart after done autoPlayStart = false; } else { setPlayerState(PAUSED); onSongProgress(); } updateRemotePlaylist(); } // Only call when starting, setPlayerState(PAUSED) already calls this if (start) { lifecycleSupport.serializeDownloadQueue(); } } catch (Exception x) { handleError(x); } } }); setupHandlers(downloadFile, isPartial, start); mediaPlayer.prepareAsync(); } catch (Exception x) { handleError(x); } }