chore: Fix video stories

This commit is contained in:
Christian Pauly 2021-12-28 23:08:27 +01:00
parent 0b76f07342
commit 9ddf10009a
2 changed files with 6 additions and 4 deletions

View File

@ -196,16 +196,18 @@ class StoryPageController extends State<StoryPage> {
String get roomId => VRouter.of(context).pathParameters['roomid'] ?? ''; String get roomId => VRouter.of(context).pathParameters['roomid'] ?? '';
Future<VideoPlayerController>? loadVideoControllerFuture; Future<VideoPlayerController?>? loadVideoControllerFuture;
Future<VideoPlayerController> loadVideoController(Event event) async { Future<VideoPlayerController?> loadVideoController(Event event) async {
try { try {
final matrixFile = await event.downloadAndDecryptAttachment(); final matrixFile = await event.downloadAndDecryptAttachment();
if (!mounted) return null;
final tmpDirectory = await getTemporaryDirectory(); final tmpDirectory = await getTemporaryDirectory();
final fileName = final fileName =
event.content.tryGet<String>('filename') ?? 'unknown_story_video.mp4'; event.content.tryGet<String>('filename') ?? 'unknown_story_video.mp4';
final file = File(tmpDirectory.path + '/' + fileName); final file = File(tmpDirectory.path + '/' + fileName);
await file.writeAsBytes(matrixFile.bytes); await file.writeAsBytes(matrixFile.bytes);
if (!mounted) return null;
final videoPlayerController = final videoPlayerController =
_videoPlayerController = VideoPlayerController.file(file); _videoPlayerController = VideoPlayerController.file(file);
await videoPlayerController.initialize(); await videoPlayerController.initialize();

View File

@ -72,7 +72,7 @@ class StoryView extends StatelessWidget {
), ),
), ),
actions: [ actions: [
if (!controller.isOwnStory) if (!controller.isOwnStory && currentEvent != null)
AnimatedOpacity( AnimatedOpacity(
duration: const Duration(seconds: 1), duration: const Duration(seconds: 1),
opacity: controller.isHold ? 0 : 1, opacity: controller.isHold ? 0 : 1,
@ -159,7 +159,7 @@ class StoryView extends StatelessWidget {
children: [ children: [
if (event.messageType == MessageTypes.Video && if (event.messageType == MessageTypes.Video &&
PlatformInfos.isMobile) PlatformInfos.isMobile)
FutureBuilder<VideoPlayerController>( FutureBuilder<VideoPlayerController?>(
future: controller.loadVideoControllerFuture ??= future: controller.loadVideoControllerFuture ??=
controller.loadVideoController(event), controller.loadVideoController(event),
builder: (context, snapshot) { builder: (context, snapshot) {