@Override public boolean isPlaying() { // no media player instance if (mCurrentMediaPlayer == null) return false; // so there is one, let's see if it's not preparing if (mCurrentMediaPlayer.preparing) return false; // finally return mCurrentMediaPlayer.isPlaying(); }
@Override public void pause() { if (mCurrentMediaPlayer != null) { // still preparing if (mCurrentMediaPlayer.preparing) { mCurrentMediaPlayer.playAfterPrepare = false; return; } // check if we play, then pause if (mCurrentMediaPlayer.isPlaying()) { mCurrentMediaPlayer.pause(); if (mPlayerEngineListener != null) mPlayerEngineListener.onTrackPause(); return; } } }
@Override public void play() { if (mPlayerEngineListener.onTrackStart() == false) { return; // apparently sth prevents us from playing tracks } // check if there is anything to play if (mPlaylist != null) { // check if media player is initialized if (mCurrentMediaPlayer == null) { mCurrentMediaPlayer = build(mPlaylist.getSelectedTrack()); } // check if current media player is set to our song if (mCurrentMediaPlayer != null && mCurrentMediaPlayer.playlistEntry != mPlaylist.getSelectedTrack()) { cleanUp(); // this will do the cleanup job mCurrentMediaPlayer = build(mPlaylist.getSelectedTrack()); } // check if there is any player instance, if not, abort further execution if (mCurrentMediaPlayer == null) return; // check if current media player is not still buffering if (!mCurrentMediaPlayer.preparing) { // prevent double-press if (!mCurrentMediaPlayer.isPlaying()) { // i guess this mean we can play the song Log.i( JamendoApplication.TAG, "Player [playing] " + mCurrentMediaPlayer.playlistEntry.getTrack().getName()); // starting timer mHandler.removeCallbacks(mUpdateTimeTask); mHandler.postDelayed(mUpdateTimeTask, 1000); // Actual equalizer Equalizer equalizer = JamendoApplication.getInstance().getMyEqualizer(); // Mantain the settings of the equalizer for the new media Equalizer newEqualizer = new Equalizer(0, mCurrentMediaPlayer.getAudioSessionId()); if (equalizer != null) { newEqualizer.setProperties(equalizer.getProperties()); } // Enable equalizer before media starts JamendoApplication.getInstance().setMyEqualizer(newEqualizer); JamendoApplication.getInstance().getMyEqualizer().setEnabled(true); mCurrentMediaPlayer.start(); } } else { // tell the mediaplayer to play the song as soon as it ends preparing mCurrentMediaPlayer.playAfterPrepare = true; } } // Change application media JamendoApplication.getInstance().setMyCurrentMedia(mCurrentMediaPlayer); }