From 022b3580dc002b7a13f9085710a077bd227f129f Mon Sep 17 00:00:00 2001 From: orz12 Date: Sun, 24 Dec 2023 02:55:50 +0800 Subject: [PATCH] =?UTF-8?q?opt:=20=E6=A2=B3=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/danmaku/controller.dart | 5 ++--- lib/pages/danmaku/view.dart | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/pages/danmaku/controller.dart b/lib/pages/danmaku/controller.dart index 0d3f795f..c7d627a8 100644 --- a/lib/pages/danmaku/controller.dart +++ b/lib/pages/danmaku/controller.dart @@ -5,7 +5,6 @@ import 'package:pilipala/plugin/pl_player/index.dart'; class PlDanmakuController { PlDanmakuController(this.cid); final int cid; - late Duration videoDuration; Map> dmSegMap = {}; // 已请求的段落标记 List requestedSeg = []; @@ -14,9 +13,9 @@ class PlDanmakuController { static int SEGMENT_LENGTH = 60 * 6 * 1000; - void initiate(int progress) { + void initiate(int videoDuration, int progress) { if (requestedSeg.isEmpty) { - int segCount = (videoDuration.inSeconds / (60 * 6)).ceil(); + int segCount = (videoDuration / SEGMENT_LENGTH).ceil(); requestedSeg = List.generate(segCount, (index) => false); } queryDanmaku( diff --git a/lib/pages/danmaku/view.dart b/lib/pages/danmaku/view.dart index d7030ebf..027b9dfa 100644 --- a/lib/pages/danmaku/view.dart +++ b/lib/pages/danmaku/view.dart @@ -47,9 +47,9 @@ class _PlDanmakuState extends State { PlDanmakuController(widget.cid); if (mounted) { playerController = widget.playerController; - _plDanmakuController.videoDuration = playerController.duration.value; if (enableShowDanmaku || playerController.isOpenDanmu.value) { _plDanmakuController.initiate( + playerController.duration.value.inMilliseconds, playerController.position.value.inMilliseconds ); } @@ -60,6 +60,7 @@ class _PlDanmakuState extends State { playerController.isOpenDanmu.listen((p0) { if (p0 && !_plDanmakuController.initiated) { _plDanmakuController.initiate( + playerController.duration.value.inMilliseconds, playerController.position.value.inMilliseconds ); }