From dae4d98d042fb56ce9c7db6176c8f604991ec7aa Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Fri, 7 Mar 2025 20:04:32 -0800 Subject: [PATCH 1/2] [video_player_android] Provide the current surface to the new ExoPlayer in TextureVideoPlayer.onSurfaceAvailable Fixes https://github.com/flutter/flutter/issues/164689 --- .../flutter/plugins/videoplayer/texture/TextureVideoPlayer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/texture/TextureVideoPlayer.java b/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/texture/TextureVideoPlayer.java index 5bf8c6fd86b..535c302921d 100644 --- a/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/texture/TextureVideoPlayer.java +++ b/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/texture/TextureVideoPlayer.java @@ -87,6 +87,7 @@ protected ExoPlayerEventListener createExoPlayerEventListener(@NonNull ExoPlayer public void onSurfaceAvailable() { if (savedStateDuring != null) { exoPlayer = createVideoPlayer(); + exoPlayer.setVideoSurface(surfaceProducer.getSurface()); savedStateDuring.restore(exoPlayer); savedStateDuring = null; } From 22f21d595c4687f86d7d9f8bb0a98bc2bcb54824 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Mon, 10 Mar 2025 16:15:57 -0700 Subject: [PATCH 2/2] Test, changelog, version update --- packages/video_player/video_player_android/CHANGELOG.md | 5 +++++ .../flutter/plugins/videoplayer/TextureVideoPlayerTest.java | 1 + packages/video_player/video_player_android/pubspec.yaml | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/video_player/video_player_android/CHANGELOG.md b/packages/video_player/video_player_android/CHANGELOG.md index dcebbe5de65..f9a2064447e 100644 --- a/packages/video_player/video_player_android/CHANGELOG.md +++ b/packages/video_player/video_player_android/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.8.2 + +* Fixes a [bug](https://github.com/flutter/flutter/issues/164689) that can cause video to + disappear after an app is suspended and resumed. + ## 2.8.1 * Updates compileSdk 34 to flutter.compileSdkVersion. diff --git a/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/TextureVideoPlayerTest.java b/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/TextureVideoPlayerTest.java index 26953687954..514a0d3a54b 100644 --- a/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/TextureVideoPlayerTest.java +++ b/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/TextureVideoPlayerTest.java @@ -102,6 +102,7 @@ public void onSurfaceProducerDestroyedAndAvailableReleasesAndThenRecreatesAndRes mockExoPlayer = mock(ExoPlayer.class); producerLifecycle.onSurfaceAvailable(); + verify(mockExoPlayer).setVideoSurface(any()); verify(mockExoPlayer).seekTo(10L); verify(mockExoPlayer).setRepeatMode(Player.REPEAT_MODE_ALL); verify(mockExoPlayer).setVolume(0.5f); diff --git a/packages/video_player/video_player_android/pubspec.yaml b/packages/video_player/video_player_android/pubspec.yaml index 0449813c3f4..40b0c33388c 100644 --- a/packages/video_player/video_player_android/pubspec.yaml +++ b/packages/video_player/video_player_android/pubspec.yaml @@ -2,7 +2,7 @@ name: video_player_android description: Android implementation of the video_player plugin. repository: https://github.com/flutter/packages/tree/main/packages/video_player/video_player_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 -version: 2.8.1 +version: 2.8.2 environment: sdk: ^3.6.0