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'] ?? '';
Future<VideoPlayerController>? loadVideoControllerFuture;
Future<VideoPlayerController?>? loadVideoControllerFuture;
Future<VideoPlayerController> loadVideoController(Event event) async {
Future<VideoPlayerController?> loadVideoController(Event event) async {
try {
final matrixFile = await event.downloadAndDecryptAttachment();
if (!mounted) return null;
final tmpDirectory = await getTemporaryDirectory();
final fileName =
event.content.tryGet<String>('filename') ?? 'unknown_story_video.mp4';
final file = File(tmpDirectory.path + '/' + fileName);
await file.writeAsBytes(matrixFile.bytes);
if (!mounted) return null;
final videoPlayerController =
_videoPlayerController = VideoPlayerController.file(file);
await videoPlayerController.initialize();

View File

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