Fix play state

pull/586/head
FongMi 2 years ago
parent 53b0386776
commit db341ed3aa
  1. 40
      app/src/main/java/com/fongmi/android/tv/player/Players.java

@ -305,18 +305,15 @@ public class Players implements Player.Listener, ParseCallback {
public void play() {
if (exoPlayer != null) exoPlayer.play();
setPlaybackState(PlaybackStateCompat.STATE_PLAYING);
}
public void pause() {
if (exoPlayer != null) exoPlayer.pause();
setPlaybackState(PlaybackStateCompat.STATE_PAUSED);
}
public void stop() {
if (exoPlayer != null) exoPlayer.stop();
if (exoPlayer != null) exoPlayer.clearMediaItems();
setPlaybackState(PlaybackStateCompat.STATE_STOPPED);
}
public void release() {
@ -522,30 +519,31 @@ public class Players implements Player.Listener, ParseCallback {
@Override
public void onEvents(@NonNull Player player, @NonNull Player.Events events) {
if (events.containsAny(Player.EVENT_TIMELINE_CHANGED, Player.EVENT_IS_PLAYING_CHANGED, Player.EVENT_POSITION_DISCONTINUITY, Player.EVENT_MEDIA_METADATA_CHANGED, Player.EVENT_PLAYBACK_STATE_CHANGED, Player.EVENT_PLAY_WHEN_READY_CHANGED, Player.EVENT_PLAYBACK_PARAMETERS_CHANGED)) {
setPlaybackState(isPlaying() ? PlaybackStateCompat.STATE_PLAYING : PlaybackStateCompat.STATE_PAUSED);
}
}
@Override
public void onPlayerError(@NonNull PlaybackException error) {
setPlaybackState(PlaybackStateCompat.STATE_ERROR);
Logger.t(TAG).e(error.errorCode + "," + url);
ErrorEvent.url(error.errorCode);
}
@Override
public void onPlaybackStateChanged(int state) {
switch (state) {
if (!events.containsAny(Player.EVENT_TIMELINE_CHANGED, Player.EVENT_IS_PLAYING_CHANGED, Player.EVENT_POSITION_DISCONTINUITY, Player.EVENT_MEDIA_METADATA_CHANGED, Player.EVENT_PLAYBACK_STATE_CHANGED, Player.EVENT_PLAY_WHEN_READY_CHANGED, Player.EVENT_PLAYBACK_PARAMETERS_CHANGED, Player.EVENT_PLAYER_ERROR)) return;
switch (player.getPlaybackState()) {
case Player.STATE_IDLE:
setPlaybackState(events.contains(Player.EVENT_PLAYER_ERROR) ? PlaybackStateCompat.STATE_ERROR : PlaybackStateCompat.STATE_NONE);
break;
case Player.STATE_READY:
case Player.STATE_ENDED:
PlayerEvent.state(state);
setPlaybackState(player.isPlaying() ? PlaybackStateCompat.STATE_PLAYING : PlaybackStateCompat.STATE_PAUSED);
break;
case Player.STATE_BUFFERING:
PlayerEvent.state(state);
setPlaybackState(PlaybackStateCompat.STATE_BUFFERING);
break;
case Player.STATE_ENDED:
setPlaybackState(PlaybackStateCompat.STATE_STOPPED);
break;
}
}
@Override
public void onPlaybackStateChanged(int state) {
PlayerEvent.state(state);
}
@Override
public void onPlayerError(@NonNull PlaybackException error) {
Logger.t(TAG).e(error.errorCode + "," + url);
ErrorEvent.url(error.errorCode);
}
}

Loading…
Cancel
Save