import 'package:fijkplayer/fijkplayer.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:video_player/video_player.dart'; class CustomVideoPlayer extends StatefulWidget { final String url; const CustomVideoPlayer({super.key, required this.url}); @override State createState() => _CustomVideoPlayerState(); } class _CustomVideoPlayerState extends State { // final FijkPlayer player = FijkPlayer(); late VideoPlayerController _controller; _CustomVideoPlayerState(); @override void initState() { super.initState(); WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft,DeviceOrientation.landscapeRight]); // player.setDataSource(widget.url, autoPlay: true); // player.enterFullScreen(); _controller = VideoPlayerController.networkUrl(Uri.parse(widget.url)) ..initialize().then((_) { // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed. setState(() { _controller.play(); }); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( toolbarHeight: 35, ), // body: Container( // alignment: Alignment.center, // child: FijkView( // player: player, // ), body: Center( child: _controller.value.isInitialized ? AspectRatio( aspectRatio: _controller.value.aspectRatio, child: VideoPlayer(_controller), ) : Container(), ), ); } @override void dispose() { SystemChrome.setPreferredOrientations([]); super.dispose(); // player.dispose(); _controller.dispose(); } }