import 'package:media_kit/media_kit.dart'; import 'package:media_kit_video/media_kit_video.dart'; import '../models/post.dart'; class VideoPlayerWidget extends StatefulWidget { final String videoUrl; const VideoPlayerWidget({super.key, required this.videoUrl}); @override State createState() => _VideoPlayerWidgetState(); } class _VideoPlayerWidgetState extends State { late final Player player; late final VideoController controller; bool _isInitialized = false; @override void initState() { super.initState(); player = Player(); controller = VideoController(player); player.open(Media(widget.videoUrl)); player.stream.error.listen((error) => print("Player error: $error")); player.stream.buffering.listen((buffering) { if (!buffering && !_isInitialized) { setState(() => _isInitialized = true); } }); } @override Widget build(BuildContext context) { return Stack( children: [ Video(controller: controller), if (!_isInitialized) const Center(child: CircularProgressIndicator()), ], ); } @override void dispose() { player.dispose(); super.dispose(); } }