use betterplayer instead of chewie

This commit is contained in:
2022-08-31 16:30:34 +02:00
parent 395b501925
commit dc87a4369e
3 changed files with 57 additions and 85 deletions

View File

@ -1,6 +1,5 @@
import 'package:chewie/chewie.dart';
import 'package:better_player/better_player.dart';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
class VideoScreenMobile extends StatefulWidget {
const VideoScreenMobile({Key? key, required this.url}) : super(key: key);
@ -11,27 +10,28 @@ class VideoScreenMobile extends StatefulWidget {
}
class _VideoScreenMobileState extends State<VideoScreenMobile> {
ChewieController? _chewieController;
BetterPlayerController? _betterPlayerController;
@override
Widget build(BuildContext context) {
if (_chewieController == null) {
if (_betterPlayerController == null) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: const [CircularProgressIndicator(), Text("loading...")],
);
} else {
return BetterPlayer(
controller: _betterPlayerController!,
);
}
return Chewie(
controller: _chewieController!,
);
}
@override
void dispose() {
super.dispose();
_chewieController?.videoPlayerController.dispose();
_chewieController?.dispose();
_betterPlayerController?.videoPlayerController?.dispose();
_betterPlayerController?.dispose();
}
@override
@ -41,18 +41,12 @@ class _VideoScreenMobileState extends State<VideoScreenMobile> {
}
void _init() async {
final VideoPlayerController _controller =
VideoPlayerController.network(widget.url);
await _controller.initialize();
_chewieController = ChewieController(
videoPlayerController: _controller,
autoPlay: true,
looping: true,
allowFullScreen: true,
allowMuting: true,
allowPlaybackSpeedChanging: true,
zoomAndPan: true);
BetterPlayerDataSource betterPlayerDataSource =
BetterPlayerDataSource(BetterPlayerDataSourceType.network, widget.url);
_betterPlayerController = BetterPlayerController(
BetterPlayerConfiguration(
autoPlay: true, looping: true, allowedScreenSleep: false),
betterPlayerDataSource: betterPlayerDataSource);
setState(() {});
}