diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java index c7ecfdbf86..3473513272 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java @@ -1221,7 +1221,14 @@ public class PlayerControlView extends FrameLayout { } @Override - public void onPlayerStateChanged(boolean playWhenReady, @Player.State int playbackState) { + public void onPlaybackStateChanged(@Player.State int playbackState) { + updatePlayPauseButton(); + updateProgress(); + } + + @Override + public void onPlayWhenReadyChanged( + boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) { updatePlayPauseButton(); updateProgress(); } diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java index b7c695603b..9831c89413 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java @@ -1418,6 +1418,14 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider } } + private void updateControllerVisibility() { + if (isPlayingAd() && controllerHideDuringAds) { + hideController(); + } else { + maybeShowController(false); + } + } + @RequiresApi(23) private static void configureEditModeLogoV23(Resources resources, ImageView logo) { logo.setImageDrawable(resources.getDrawable(R.drawable.exo_edit_mode_logo, null)); @@ -1532,14 +1540,17 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider // Player.EventListener implementation @Override - public void onPlayerStateChanged(boolean playWhenReady, @Player.State int playbackState) { + public void onPlaybackStateChanged(@Player.State int playbackState) { updateBuffering(); updateErrorMessage(); - if (isPlayingAd() && controllerHideDuringAds) { - hideController(); - } else { - maybeShowController(false); - } + updateControllerVisibility(); + } + + @Override + public void onPlayWhenReadyChanged( + boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) { + updateBuffering(); + updateControllerVisibility(); } @Override