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

View File

@ -12,14 +12,11 @@ class ImmichLogo extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Hero( return Image(
tag: heroTag, image: const AssetImage('assets/immich-logo.png'),
child: Image( width: size,
image: const AssetImage('assets/immich-logo.png'), filterQuality: FilterQuality.high,
width: size, isAntiAlias: true,
filterQuality: FilterQuality.high,
isAntiAlias: true,
),
); );
} }
} }