diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 091e48315..85f9eb21e 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -393,6 +393,8 @@ public class PlayerActivity extends Activity player = ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector, drmSessionManager); + player.addListener(new PlayerEndEventListener()); + player.addListener(new PlayerLogEventListener()); player.addListener(new PlayerEventListener()); player.setPlayWhenReady(startAutoPlay); player.addAnalyticsListener(new EventLogger(trackSelector)); @@ -702,6 +704,17 @@ public class PlayerActivity extends Activity } } + private class PlayerEndEventListener extends PlayerLogEventListener { + @Override + public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { + super.onPlayerStateChanged(playWhenReady, playbackState); + + if (playbackState == Player.STATE_ENDED) { + player.stop(); + } + } + } + private class PlayerErrorMessageProvider implements ErrorMessageProvider { @Override diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerLogEventListener.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerLogEventListener.java new file mode 100644 index 000000000..55a0ede19 --- /dev/null +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerLogEventListener.java @@ -0,0 +1,23 @@ +package com.google.android.exoplayer2.demo; + +import android.util.Log; + +import com.google.android.exoplayer2.Player; + +public class PlayerLogEventListener extends Player.DefaultEventListener { + @Override + public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { + Log.d(this.getClass().getSimpleName(), + "playbackState: " + getStatName(playbackState) + " / playyWhenReady: " + playWhenReady); + } + + private String getStatName(int playerState) { + switch (playerState) { + case Player.STATE_IDLE: return "IDLE"; + case Player.STATE_BUFFERING: return "BUFFERING"; + case Player.STATE_READY: return "READY"; + case Player.STATE_ENDED: return "ENDED"; + default: return "UNKNOWN"; + } + } +}