From 8cf900bafaa741316cb6813a61306477405dc194 Mon Sep 17 00:00:00 2001 From: Yaros Date: Thu, 11 Dec 2025 17:57:37 +0100 Subject: [PATCH] fix(mobile): local videos with '#' don't play on android (#24373) * fix(mobile): videos with '#' don't play on android * refactor: one line Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com> * fix: depend on platform --------- Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com> --- .../widgets/asset_viewer/video_viewer.widget.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart index 08b5b25343..8727f40a1a 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart @@ -9,6 +9,7 @@ import 'package:immich_mobile/domain/models/setting.model.dart'; import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/domain/services/setting.service.dart'; import 'package:immich_mobile/entities/store.entity.dart'; +import 'package:immich_mobile/extensions/platform_extensions.dart'; import 'package:immich_mobile/infrastructure/repositories/storage.repository.dart'; import 'package:immich_mobile/presentation/widgets/asset_viewer/asset_viewer.state.dart'; import 'package:immich_mobile/presentation/widgets/asset_viewer/video_viewer_controls.widget.dart'; @@ -104,7 +105,12 @@ class NativeVideoViewer extends HookConsumerWidget { throw Exception('No file found for the video'); } - final source = await VideoSource.init(path: file.path, type: VideoSourceType.file); + // Pass a file:// URI so Android's Uri.parse doesn't + // interpret characters like '#' as fragment identifiers. + final source = await VideoSource.init( + path: CurrentPlatform.isAndroid ? file.uri.toString() : file.path, + type: VideoSourceType.file, + ); return source; }