diff options
Diffstat (limited to 'samples/Support7Demos/src/com/example/android/supportv7/media/Player.java')
-rw-r--r-- | samples/Support7Demos/src/com/example/android/supportv7/media/Player.java | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/Player.java b/samples/Support7Demos/src/com/example/android/supportv7/media/Player.java index fcab57dd9..a5d58971e 100644 --- a/samples/Support7Demos/src/com/example/android/supportv7/media/Player.java +++ b/samples/Support7Demos/src/com/example/android/supportv7/media/Player.java @@ -16,10 +16,7 @@ package com.example.android.supportv7.media; -import android.app.PendingIntent; -import android.content.ComponentName; import android.content.Context; -import android.content.Intent; import android.graphics.Bitmap; import android.support.v4.media.MediaMetadataCompat; import android.support.v4.media.session.MediaSessionCompat; @@ -32,17 +29,22 @@ import android.util.Log; * Abstraction of common playback operations of media items, such as play, * seek, etc. Used by PlaybackManager as a backend to handle actual playback * of media items. + * + * TODO: Introduce prepare() method and refactor subclasses accordingly. */ public abstract class Player { private static final String TAG = "SampleMediaRoutePlayer"; protected static final int STATE_IDLE = 0; - protected static final int STATE_PLAY_PENDING = 1; - protected static final int STATE_READY = 2; - protected static final int STATE_PLAYING = 3; - protected static final int STATE_PAUSED = 4; + protected static final int STATE_PREPARING_FOR_PLAY = 1; + protected static final int STATE_PREPARING_FOR_PAUSE = 2; + protected static final int STATE_READY = 3; + protected static final int STATE_PLAYING = 4; + protected static final int STATE_PAUSED = 5; private static final long PLAYBACK_ACTIONS = PlaybackStateCompat.ACTION_PAUSE | PlaybackStateCompat.ACTION_PLAY; + private static final PlaybackStateCompat INIT_PLAYBACK_STATE = new PlaybackStateCompat.Builder() + .setState(PlaybackStateCompat.STATE_NONE, 0, .0f).build(); protected Callback mCallback; protected MediaSessionCompat mMediaSession; @@ -88,13 +90,18 @@ public abstract class Player { } else { player = new LocalPlayer.OverlayPlayer(context); } - player.initMediaSession(session); + player.setMediaSession(session); + player.initMediaSession(); player.connect(route); return player; } - public MediaSessionCompat getMediaSession() { - return mMediaSession; + protected void initMediaSession() { + if (mMediaSession == null) { + return; + } + mMediaSession.setMetadata(null); + mMediaSession.setPlaybackState(INIT_PLAYBACK_STATE); } protected void updateMetadata() { @@ -138,16 +145,14 @@ public abstract class Player { } } - private void initMediaSession(MediaSessionCompat session) { + private void setMediaSession(MediaSessionCompat session) { mMediaSession = session; - updateMetadata(); } - public interface Callback { void onError(); void onCompletion(); void onPlaylistChanged(); void onPlaylistReady(); } -}
\ No newline at end of file +} |