fix: seek preview index

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-01-29 23:40:03 +08:00
parent 0fd232ab3a
commit a5a13b45cf
2 changed files with 12 additions and 5 deletions

View File

@@ -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) {

View File

@@ -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<int>.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),
);