12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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<VideoPlayerWidget> createState() => _VideoPlayerWidgetState();
- }
- class _VideoPlayerWidgetState extends State<VideoPlayerWidget> {
- 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();
- }
- }
|