Surface video playback error on UI (#1189)
This commit is contained in:
commit
d0cf8165db
2 changed files with 23 additions and 3 deletions
|
@ -12,6 +12,7 @@ import 'package:photos/models/file.dart';
|
||||||
import 'package:photos/services/files_service.dart';
|
import 'package:photos/services/files_service.dart';
|
||||||
import 'package:photos/ui/viewer/file/thumbnail_widget.dart';
|
import 'package:photos/ui/viewer/file/thumbnail_widget.dart';
|
||||||
import 'package:photos/ui/viewer/file/video_controls.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/file_util.dart';
|
||||||
import 'package:photos/utils/toast_util.dart';
|
import 'package:photos/utils/toast_util.dart';
|
||||||
import 'package:video_player/video_player.dart';
|
import 'package:video_player/video_player.dart';
|
||||||
|
@ -135,12 +136,29 @@ class _VideoWidgetState extends State<VideoWidget> {
|
||||||
} else {
|
} else {
|
||||||
videoPlayerController = VideoPlayerController.file(file!);
|
videoPlayerController = VideoPlayerController.file(file!);
|
||||||
}
|
}
|
||||||
return _videoPlayerController = videoPlayerController
|
|
||||||
|
debugPrint("videoPlayerController: $videoPlayerController");
|
||||||
|
_videoPlayerController = videoPlayerController
|
||||||
..initialize().whenComplete(() {
|
..initialize().whenComplete(() {
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
setState(() {});
|
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
|
@override
|
||||||
|
|
|
@ -46,8 +46,10 @@ Future<ButtonResult?> showErrorDialogForException({
|
||||||
required Exception exception,
|
required Exception exception,
|
||||||
bool isDismissible = true,
|
bool isDismissible = true,
|
||||||
String apiErrorPrefix = "It looks like something went wrong.",
|
String apiErrorPrefix = "It looks like something went wrong.",
|
||||||
|
String? message,
|
||||||
}) async {
|
}) async {
|
||||||
String errorMessage = S.of(context).tempErrorContactSupportIfPersists;
|
String errorMessage =
|
||||||
|
message ?? S.of(context).tempErrorContactSupportIfPersists;
|
||||||
if (exception is DioError &&
|
if (exception is DioError &&
|
||||||
exception.response != null &&
|
exception.response != null &&
|
||||||
exception.response!.data["code"] != null) {
|
exception.response!.data["code"] != null) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue