From be6e3024bdab7479e352933194eec36abf2b0bf3 Mon Sep 17 00:00:00 2001 From: Wei Jia Date: Thu, 8 Mar 2018 13:56:42 -0800 Subject: [PATCH] MediaPlayer2Impl: fix getPlayerState. Test: MediaPlayer2 plays Bug: 74204684 Change-Id: Ib27930287485f074be6a8df4a90fb78023153ccd --- .../java/android/media/MediaPlayer2Impl.java | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/media/java/android/media/MediaPlayer2Impl.java b/media/java/android/media/MediaPlayer2Impl.java index 7c114df660374..b2b609e2b19e1 100644 --- a/media/java/android/media/MediaPlayer2Impl.java +++ b/media/java/android/media/MediaPlayer2Impl.java @@ -311,26 +311,34 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { return 0; } - /** - * Gets the current player state. - * - * @return the current player state, one of the following: - * @throws IllegalStateException if the internal player engine has not been - * initialized or has been released. - */ @Override public @PlayerState int getPlayerState() { - // TODO: use cached state or call native function. - return PLAYER_STATE_IDLE; + int mediaplayer2State = getMediaPlayer2State(); + int playerState; + switch (mediaplayer2State) { + case MEDIAPLAYER2_STATE_IDLE: + playerState = PLAYER_STATE_IDLE; + break; + case MEDIAPLAYER2_STATE_PREPARED: + case MEDIAPLAYER2_STATE_PAUSED: + playerState = PLAYER_STATE_PAUSED; + break; + case MEDIAPLAYER2_STATE_PLAYING: + playerState = PLAYER_STATE_PLAYING; + break; + case MEDIAPLAYER2_STATE_ERROR: + default: + playerState = PLAYER_STATE_ERROR; + break; + } + + return playerState; } /** * Gets the current buffering state of the player. * During buffering, see {@link #getBufferedPosition()} for the quantifying the amount already * buffered. - * @return the buffering state, one of the following: - * @throws IllegalStateException if the internal player engine has not been - * initialized or has been released. */ @Override public @BuffState int getBufferingState() {