refactor progress bar

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-06-26 12:45:41 +08:00
parent 2ba6f0d063
commit a623ceee47
12 changed files with 263 additions and 391 deletions

View File

@@ -565,7 +565,7 @@ class VideoDetailController extends GetxController
bool get preInitPlayer => plPlayerController.preInitPlayer;
@override
int get currPosInMilliseconds =>
defaultST?.inMilliseconds ?? plPlayerController.position.inMilliseconds;
defaultST?.inMilliseconds ?? plPlayerController.positionInMilliseconds;
@override
Future<void> seekTo(Duration duration, {required bool isSeek}) =>
plPlayerController.seekTo(duration, isSeek: isSeek);
@@ -646,7 +646,7 @@ class VideoDetailController extends GetxController
final child = SendDanmakuPanel(
cid: cid.value,
bvid: bvid,
progress: plPlayerController.position.inMilliseconds,
progress: plPlayerController.positionInMilliseconds,
initialValue: savedDanmaku,
onSave: (danmaku) => savedDanmaku = danmaku,
onSuccess: (danmakuModel) {
@@ -707,10 +707,10 @@ class VideoDetailController extends GetxController
final currentVideoQa = this.currentVideoQa.value;
if (currentVideoQa == null) return;
_autoPlay.value = true;
playedTime = plPlayerController.position;
playedTime = plPlayerController.videoPlayerController?.state.position;
plPlayerController
..isBuffering.value = false
..buffered.value = Duration.zero;
..buffered.value = 0;
firstVideo = findVideoByQa(currentVideoQa.code, setCodecs: true);
videoUrl = VideoUtils.getCdnUrl(firstVideo.playUrls);
@@ -1003,7 +1003,7 @@ class VideoDetailController extends GetxController
PostSegmentModel(
segment: Pair(
first: 0,
second: plPlayerController.position.inMilliseconds / 1000,
second: plPlayerController.positionInMilliseconds / 1000,
),
category: SegmentType.sponsor,
actionType: ActionType.skip,

View File

@@ -650,9 +650,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
videoDetailCtr.data.timeLength ??
videoDetailCtr
.plPlayerController
.duration
.value
.inMilliseconds;
.durationInMilliseconds;
if (duration > 0) {
final ytbId = youtubeRegExp
.firstMatch(matchStr)

View File

@@ -183,10 +183,9 @@ class _PostPanelState extends State<PostPanel>
late final PlPlayerController plPlayerController = widget.plPlayerController;
late final List<PostSegmentModel> list = videoDetailController.postList;
double get videoDuration =>
plPlayerController.duration.value.inMilliseconds / 1000;
double get videoDuration => plPlayerController.durationInMilliseconds / 1000;
double currentPos() => plPlayerController.position.inMilliseconds / 1000;
double currentPos() => plPlayerController.positionInMilliseconds / 1000;
@override
Widget buildPage(ThemeData theme) {

View File

@@ -103,7 +103,7 @@ class _ViewPointsPageState extends State<ViewPointsPage>
final segment = videoDetailController.viewPointList[index];
if (currentIndex == -1 && segment.from != null && segment.to != null) {
final positionSeconds =
videoDetailController.plPlayerController.positionSeconds.value;
videoDetailController.plPlayerController.position.value;
if (positionSeconds >= segment.from! &&
positionSeconds < segment.to!) {
currentIndex = index;