import 'package:better_player/better_player.dart'; import 'package:flutter/material.dart'; class VideoScreenMobile extends StatefulWidget { const VideoScreenMobile({Key? key, required this.url}) : super(key: key); final String url; @override State createState() => _VideoScreenMobileState(); } class _VideoScreenMobileState extends State { BetterPlayerController? _betterPlayerController; @override Widget build(BuildContext context) { if (_betterPlayerController == null) { return Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: const [CircularProgressIndicator(), Text("loading...")], ); } else { return BetterPlayer( controller: _betterPlayerController!, ); } } @override void dispose() { super.dispose(); _betterPlayerController?.videoPlayerController?.dispose(); _betterPlayerController?.dispose(); } @override void initState() { super.initState(); _init(); } void _init() async { BetterPlayerDataSource betterPlayerDataSource = BetterPlayerDataSource(BetterPlayerDataSourceType.network, widget.url); _betterPlayerController = BetterPlayerController( BetterPlayerConfiguration( autoPlay: true, looping: true, allowedScreenSleep: false), betterPlayerDataSource: betterPlayerDataSource); setState(() {}); } }