From a302b6f703d64c4a79ca411125bcfbfcede98d35 Mon Sep 17 00:00:00 2001 From: orz12 Date: Wed, 13 Mar 2024 21:20:04 +0800 Subject: [PATCH] =?UTF-8?q?mod:=20=E6=B8=85=E9=99=A4buffer=20listener?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/video/detail/view.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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(); }