add video player, might need tweaking to get perfect

This commit is contained in:
Henry Hiles 2026-05-19 16:37:18 -04:00
commit 8010c3467e
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 18 additions and 11 deletions

View file

@ -238,6 +238,11 @@ class RenderEvent extends ConsumerWidget {
:final info,
) =>
VideoPlayer(url, info),
// TODO: Support audio
// FileMessageContent(
// :final info,
// ) =>
// VideoPlayer(url, info),
ImageMessageContent(:final info) => ExpandableImage(
url.toString(),
child: ClipRRect(

View file

@ -1,10 +1,10 @@
import "package:flutter/material.dart";
import "package:hooks_riverpod/hooks_riverpod.dart";
import "package:nexus/models/info/video.dart";
// import "package:flutter_hooks/flutter_hooks.dart";
// import "package:media_kit/media_kit.dart";
// import "package:media_kit_video/media_kit_video.dart";
// import "package:nexus/helpers/extensions/get_headers.dart";
import "package:flutter_hooks/flutter_hooks.dart";
import "package:media_kit/media_kit.dart";
import "package:media_kit_video/media_kit_video.dart";
import "package:nexus/helpers/extensions/get_headers.dart";
class VideoPlayer extends HookConsumerWidget {
final VideoInfo? info;
@ -13,15 +13,17 @@ class VideoPlayer extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
// final player = useMemoized(Player.new);
// final controller = useMemoized(() => VideoController(player), [player]);
late final player = useMemoized(Player.new);
late final controller = useMemoized(() => VideoController(player), [
player,
]);
// useEffect(() {
// player.open(Media(url.toString(), httpHeaders: ref.headers), play: false);
useEffect(() {
player.open(Media(url.toString(), httpHeaders: ref.headers), play: false);
// return player.dispose;
// }, []);
return player.dispose;
}, []);
return Placeholder();
return SizedBox(height: 300, child: Video(controller: controller));
}
}