Here's your solution.
Source code:
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late PodPlayerController podPlayerController;
Future<void> future = Future<void>.value();
String networkFileURL = "https://shorturl.at/ruFK2";
@override
void initState() {
super.initState();
final PlayVideoFrom networkSource = PlayVideoFrom.network(networkFileURL);
podPlayerController = PodPlayerController(playVideoFrom: networkSource);
WidgetsBinding.instance.addPostFrameCallback(
(Duration timeStamp) async {
future = initialisePodPlayer();
},
);
}
@override
void dispose() {
future = Future<void>.value();
podPlayerController.dispose();
super.dispose();
}
Future<void> initialisePodPlayer() async {
await podPlayerController.initialise();
print("Pod Player Initialised");
podPlayerController.play();
setState(() {});
return Future<void>.value();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: FutureBuilder<void>(
future: future,
builder: (BuildContext context, AsyncSnapshot<void> snapshot) {
return Center(
child: snapshot.connectionState == ConnectionState.done
? snapshot.hasError
? Text("${snapshot.error}")
: PodVideoPlayer(controller: podPlayerController)
: const CircularProgressIndicator(),
);
},
),
),
);
}
}