From 2b6f61361215a1ce7f1fe2459237ba6f416b98ca Mon Sep 17 00:00:00 2001 From: Jeferson Daniel Date: Wed, 17 Jun 2020 20:02:35 -0300 Subject: [PATCH 1/2] Fix exoplayer aspect ratio update on source changes --- .../com/brentvatne/exoplayer/AspectRatioFrameLayout.java | 4 ++++ .../main/java/com/brentvatne/exoplayer/ExoPlayerView.java | 5 +++++ .../java/com/brentvatne/exoplayer/ReactExoplayerView.java | 2 ++ 3 files changed, 11 insertions(+) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java index 5079451bf8..ea2cd4dd15 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/AspectRatioFrameLayout.java @@ -67,6 +67,10 @@ public float getAspectRatio() { return videoAspectRatio; } + public void invalidateAspectRatio() { + videoAspectRatio = 0; + } + /** * Sets the resize mode which can be of value {@link ResizeMode.Mode} * diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java index 2b43b45e0e..afa5106c19 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java @@ -200,6 +200,11 @@ private void updateForCurrentTrackSelections() { shutterView.setVisibility(VISIBLE); } + public void invalidateAspectRatio() { + // Resetting aspect ratio will force layout refresh on next video size changed + layout.invalidateAspectRatio(); + } + private final class ComponentListener implements SimpleExoPlayer.VideoListener, TextOutput, ExoPlayer.EventListener { diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 5df1f3bbe0..4e6fea586d 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -410,6 +410,8 @@ public void run() { player.setPlaybackParameters(params); } if (playerNeedsSource && srcUri != null) { + exoPlayerView.invalidateAspectRatio(); + ArrayList mediaSourceList = buildTextSources(); MediaSource videoSource = buildMediaSource(srcUri, extension); MediaSource mediaSource; From 72f3e6e8f8838c99c08a5c936e48c9025ad05fd4 Mon Sep 17 00:00:00 2001 From: Jeferson Daniel Date: Tue, 30 Jun 2020 13:24:52 -0300 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fefee0f8b..45f586a3ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - Added preventsDisplaySleepDuringVideoPlayback (#2019) - Reverted the JS fullscreening for Android. [#2013](https://github.com/react-native-community/react-native-video/pull/2013) - Set iOS request headers without needing to edit RCTVideo.m. [#2014](https://github.com/react-native-community/react-native-video/pull/2014) +- Fix exoplayer aspect ratio update on source changes [#2053](https://github.com/react-native-community/react-native-video/pull/2053) ### Version 5.1.0-alpha5