OpenMediacenterMobileFlutter/lib/video_screen/videoscreen_mobile.dart

54 lines
1.5 KiB
Dart
Raw Normal View History

2022-08-31 14:30:34 +00:00
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<VideoScreenMobile> createState() => _VideoScreenMobileState();
}
class _VideoScreenMobileState extends State<VideoScreenMobile> {
2022-08-31 14:30:34 +00:00
BetterPlayerController? _betterPlayerController;
@override
Widget build(BuildContext context) {
2022-08-31 14:30:34 +00:00
if (_betterPlayerController == null) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: const [CircularProgressIndicator(), Text("loading...")],
);
2022-08-31 14:30:34 +00:00
} else {
return BetterPlayer(
controller: _betterPlayerController!,
);
}
}
@override
void dispose() {
super.dispose();
2022-08-31 14:30:34 +00:00
_betterPlayerController?.videoPlayerController?.dispose();
_betterPlayerController?.dispose();
}
@override
void initState() {
super.initState();
_init();
}
void _init() async {
2022-08-31 14:30:34 +00:00
BetterPlayerDataSource betterPlayerDataSource =
BetterPlayerDataSource(BetterPlayerDataSourceType.network, widget.url);
_betterPlayerController = BetterPlayerController(
BetterPlayerConfiguration(
autoPlay: true, looping: true, allowedScreenSleep: false),
betterPlayerDataSource: betterPlayerDataSource);
setState(() {});
}
}