diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index d87b0de6..32f92c9b 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -67,6 +67,7 @@ class _VideoDetailPageState extends State late final MethodChannel onUserLeaveHintListener; late AnimationController _animationController; late Animation _animation; + StreamSubscription? _bufferedListener; @override void initState() { @@ -243,6 +244,7 @@ class _VideoDetailPageState extends State AutoOrientation.portraitUpMode(); } shutdownTimerService.handleWaitingFinished(); + _bufferedListener?.cancel(); if (plPlayerController != null) { plPlayerController!.removeStatusLister(playerListener); fullScreenStatusListener.cancel(); @@ -258,6 +260,7 @@ class _VideoDetailPageState extends State @override // 离开当前页面时 void didPushNext() async { + _bufferedListener?.cancel(); /// 开启 if (setting.get(SettingBoxKey.enableAutoBrightness, defaultValue: false) as bool) { @@ -295,8 +298,9 @@ class _VideoDetailPageState extends State if (autoplay) { // await Future.delayed(const Duration(milliseconds: 300)); if (plPlayerController?.buffered.value == Duration.zero) { - plPlayerController?.buffered.listen((p0) { + _bufferedListener = plPlayerController?.buffered.listen((p0) { if (p0 > Duration.zero) { + _bufferedListener!.cancel(); plPlayerController?.seekTo(videoDetailController.defaultST); plPlayerController?.play(); }