fix(mobile): video player initialization (#17778)

* fix(mobile): video player initialization

* nit
This commit is contained in:
Alex 2025-04-22 10:51:20 -05:00 committed by GitHub
parent fda68f972f
commit af36eaa61b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 12 deletions

View file

@ -63,9 +63,12 @@ class GalleryViewerPage extends HookConsumerWidget {
final loadAsset = renderList.loadAsset;
final isPlayingMotionVideo = ref.watch(isPlayingMotionVideoProvider);
// This key is to prevent the video player from being re-initialized during
// hero animation or device rotation.
final videoPlayerKey = useMemoized(() => GlobalKey());
final videoPlayerKeys = useRef<Map<int, GlobalKey>>({});
GlobalKey getVideoPlayerKey(int id) {
videoPlayerKeys.value.putIfAbsent(id, () => GlobalKey());
return videoPlayerKeys.value[id]!;
}
Future<void> precacheNextImage(int index) async {
if (!context.mounted) {
@ -243,7 +246,7 @@ class GalleryViewerPage extends HookConsumerWidget {
width: context.width,
height: context.height,
child: NativeVideoViewerPage(
key: videoPlayerKey,
key: getVideoPlayerKey(asset.id),
asset: asset,
image: Image(
key: ValueKey(asset),