diff --git a/lib/ui/viewer/file/video_widget.dart b/lib/ui/viewer/file/video_widget.dart index 12230a847..41f872bd5 100644 --- a/lib/ui/viewer/file/video_widget.dart +++ b/lib/ui/viewer/file/video_widget.dart @@ -12,6 +12,7 @@ import 'package:photos/models/file.dart'; import 'package:photos/services/files_service.dart'; import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; import 'package:photos/ui/viewer/file/video_controls.dart'; +import "package:photos/utils/dialog_util.dart"; import 'package:photos/utils/file_util.dart'; import 'package:photos/utils/toast_util.dart'; import 'package:video_player/video_player.dart'; @@ -135,12 +136,29 @@ class _VideoWidgetState extends State { } else { videoPlayerController = VideoPlayerController.file(file!); } - return _videoPlayerController = videoPlayerController + + debugPrint("videoPlayerController: $videoPlayerController"); + _videoPlayerController = videoPlayerController ..initialize().whenComplete(() { if (mounted) { setState(() {}); } - }); + }).onError( + (error, stackTrace) { + if (mounted) { + if (error is Exception) { + showErrorDialogForException( + context: context, + exception: error, + message: "Failed to play video\n ${error.toString()}", + ); + } else { + showToast(context, "Failed to play video"); + } + } + }, + ); + return videoPlayerController; } @override diff --git a/lib/utils/dialog_util.dart b/lib/utils/dialog_util.dart index edb9f986f..10c8eb39a 100644 --- a/lib/utils/dialog_util.dart +++ b/lib/utils/dialog_util.dart @@ -46,8 +46,10 @@ Future showErrorDialogForException({ required Exception exception, bool isDismissible = true, String apiErrorPrefix = "It looks like something went wrong.", + String? message, }) async { - String errorMessage = S.of(context).tempErrorContactSupportIfPersists; + String errorMessage = + message ?? S.of(context).tempErrorContactSupportIfPersists; if (exception is DioError && exception.response != null && exception.response!.data["code"] != null) {