opt: PlPlayerController (#1832)

* opt: audio uri

* opt: PlPlayerController
This commit is contained in:
My-Responsitories
2026-02-10 16:33:02 +08:00
committed by GitHub
parent ed2bd069ee
commit 9411785d26
6 changed files with 91 additions and 132 deletions

View File

@@ -57,7 +57,7 @@ class _PlDanmakuState extends State<PlDanmaku> {
} else {
_plDanmakuController.queryDanmaku(
PlDanmakuController.calcSegment(
playerController.position.value.inMilliseconds,
playerController.position.inMilliseconds,
),
);
}

View File

@@ -499,8 +499,7 @@ class VideoDetailController extends GetxController
bool get preInitPlayer => plPlayerController.preInitPlayer;
@override
int get currPosInMilliseconds =>
defaultST?.inMilliseconds ??
plPlayerController.position.value.inMilliseconds;
defaultST?.inMilliseconds ?? plPlayerController.position.inMilliseconds;
@override
Future<void> seekTo(Duration duration, {required bool isSeek}) =>
plPlayerController.seekTo(duration, isSeek: isSeek);
@@ -583,7 +582,7 @@ class VideoDetailController extends GetxController
return SendDanmakuPanel(
cid: cid.value,
bvid: bvid,
progress: plPlayerController.position.value.inMilliseconds,
progress: plPlayerController.position.inMilliseconds,
initialValue: savedDanmaku,
onSave: (danmaku) => savedDanmaku = danmaku,
onSuccess: (danmakuModel) {
@@ -634,7 +633,7 @@ class VideoDetailController extends GetxController
final currentVideoQa = this.currentVideoQa.value;
if (currentVideoQa == null) return;
_autoPlay.value = true;
playedTime = plPlayerController.position.value;
playedTime = plPlayerController.position;
plPlayerController
..removeListeners()
..isBuffering.value = false
@@ -960,7 +959,7 @@ class VideoDetailController extends GetxController
PostSegmentModel(
segment: Pair(
first: 0,
second: plPlayerController.position.value.inMilliseconds / 1000,
second: plPlayerController.position.inMilliseconds / 1000,
),
category: SegmentType.sponsor,
actionType: ActionType.skip,
@@ -1177,7 +1176,7 @@ class VideoDetailController extends GetxController
? -1
: playedTime!.inSeconds
: playedTime!.inSeconds,
type: HeartBeatType.status,
type: HeartBeatType.completed,
isManual: true,
aid: aid,
bvid: bvid,

View File

@@ -184,10 +184,9 @@ class _PostPanelState extends State<PostPanel>
late final List<PostSegmentModel> list = videoDetailController.postList;
late final double videoDuration =
plPlayerController.durationSeconds.value.inMilliseconds / 1000;
plPlayerController.duration.value.inMilliseconds / 1000;
double get currentPos =>
plPlayerController.position.value.inMilliseconds / 1000;
double currentPos() => plPlayerController.position.inMilliseconds / 1000;
@override
Widget buildPage(ThemeData theme) {
@@ -211,7 +210,7 @@ class _PostPanelState extends State<PostPanel>
PostSegmentModel(
segment: Pair(
first: 0,
second: currentPos,
second: currentPos(),
),
category: SegmentType.sponsor,
actionType: ActionType.skip,
@@ -350,7 +349,7 @@ class _PostPanelState extends State<PostPanel>
PostPanel.segmentWidget(
theme,
item: item,
currentPos: () => currentPos,
currentPos: currentPos,
videoDuration: videoDuration,
),
Wrap(