From a5a13b45cf6226c338af7aa507b4c68e4d24186c Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Wed, 29 Jan 2025 23:40:03 +0800 Subject: [PATCH] fix: seek preview index Signed-off-by: bggRGjQaUbCoE --- lib/plugin/pl_player/controller.dart | 6 +++--- lib/plugin/pl_player/view.dart | 11 +++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 0dccfc28..e0ea4e42 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1,14 +1,12 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; -import 'dart:typed_data'; import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/widgets/segment_progress_bar.dart'; import 'package:PiliPlus/http/init.dart'; import 'package:PiliPlus/models/common/audio_normalization.dart'; import 'package:PiliPlus/utils/extension.dart'; -import 'package:PiliPlus/utils/id_utils.dart'; import 'package:PiliPlus/utils/utils.dart'; import 'package:canvas_danmaku/canvas_danmaku.dart'; import 'package:easy_debounce/easy_throttle.dart'; @@ -1587,8 +1585,10 @@ class PlPlayerController { dynamic res = await Request().get( 'https://api.bilibili.com/x/player/videoshot', queryParameters: { - 'aid': IdUtils.bv2av(_bvid), + // 'aid': IdUtils.bv2av(_bvid), + 'bvid': _bvid, 'cid': _cid, + 'index': 1, }, ); if (res.data['code'] == 0) { diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index d4bfeec9..b93e9f7c 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -1511,7 +1511,13 @@ Widget buildSeekPreviewWidget(PlPlayerController plPlayerController) { .clamp(8, constraints.maxWidth - 48 * scale - 8); // index - int index = plPlayerController.sliderPositionSeconds.value ~/ 5; + // int index = plPlayerController.sliderPositionSeconds.value ~/ 5; + int index = (List.from( + plPlayerController.videoShot!['data']['index']) + .where((item) => + item <= plPlayerController.sliderPositionSeconds.value) + .length - + 2); // pageIndex int pageIndex = (index ~/ 100).clamp( @@ -1560,7 +1566,8 @@ Widget buildSeekPreviewWidget(PlPlayerController plPlayerController) { ), ), ); - } catch (_) { + } catch (e) { + debugPrint('seek preview: $e'); return SizedBox.shrink( key: ValueKey(plPlayerController.localPosition.value), );