From 7f615280ace129f1ccd56a20262443d065f801bd Mon Sep 17 00:00:00 2001 From: MohammadTaha Basiri Date: Tue, 5 Apr 2022 01:23:23 +0430 Subject: [PATCH] bug fixes --- .../studio_details/studio_details.mobile.dart | 63 ++++++++++--------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/lib/views/home/studio/studio_details/studio_details.mobile.dart b/lib/views/home/studio/studio_details/studio_details.mobile.dart index 5d89fca..2c34596 100644 --- a/lib/views/home/studio/studio_details/studio_details.mobile.dart +++ b/lib/views/home/studio/studio_details/studio_details.mobile.dart @@ -24,6 +24,14 @@ class _StudioDetailsState extends State { @override void initState() { + _betterPlayerController = BetterPlayerController( + const BetterPlayerConfiguration( + aspectRatio: 16 / 9, + showPlaceholderUntilPlay: true, + autoDispose: false, + fullScreenAspectRatio: 16 / 9, + ), + ); final state = context.read(); state.args = widget.pageData['args']; Future.delayed( @@ -48,30 +56,7 @@ class _StudioDetailsState extends State { }, builder: (context, state) { if (_currentlyPlayingId != state.studio.id) { - BetterPlayerDataSource betterPlayerDataSource = - BetterPlayerDataSource( - BetterPlayerDataSourceType.network, - state.studio.link, - ); - _betterPlayerController = BetterPlayerController( - BetterPlayerConfiguration( - aspectRatio: 16 / 9, - showPlaceholderUntilPlay: true, - controlsConfiguration: BetterPlayerControlsConfiguration( - enablePlaybackSpeed: false, - enableSubtitles: false, - enableAudioTracks: false, - progressBarPlayedColor: - Theme.of(context).colorScheme.secondary, - progressBarHandleColor: - Theme.of(context).colorScheme.secondary, - ), - fit: BoxFit.contain, - fullScreenAspectRatio: 16 / 9, - ), - betterPlayerDataSource: betterPlayerDataSource, - ); - _currentlyPlayingId = state.studio.id; + _handleVideoPlayback(state); } return WillPopScope( onWillPop: () async { @@ -127,9 +112,29 @@ class _StudioDetailsState extends State { ); } - // @override - // void dispose() { - // _betterPlayerController.dispose(); - // super.dispose(); - // } + Future _handleVideoPlayback(state) async { + final betterPlayerDataSource = BetterPlayerDataSource( + BetterPlayerDataSourceType.network, + state.studio.link, + ); + await _betterPlayerController.clearCache(); + await _betterPlayerController.setupDataSource(betterPlayerDataSource); + _betterPlayerController.setBetterPlayerControlsConfiguration( + BetterPlayerControlsConfiguration( + enablePlaybackSpeed: false, + enableSubtitles: false, + enableAudioTracks: false, + progressBarPlayedColor: Theme.of(context).colorScheme.secondary, + progressBarHandleColor: Theme.of(context).colorScheme.secondary, + ), + ); + _currentlyPlayingId = state.studio.id; + } + + @override + void dispose() { + _betterPlayerController.pause(); + _betterPlayerController.dispose(); + super.dispose(); + } }