Closes #1680

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-10-24 12:12:56 +08:00
parent bbcf0dec1b
commit 4256c2b023
5 changed files with 98 additions and 149 deletions

View File

@@ -1256,18 +1256,20 @@ class PlPlayerController {
}
await _videoPlayerController?.setRate(speed);
if (danmakuController != null) {
DanmakuOption currentOption = danmakuController!.option;
double defaultDuration = currentOption.duration * lastPlaybackSpeed;
double defaultStaticDuration =
currentOption.staticDuration * lastPlaybackSpeed;
DanmakuOption updatedOption = currentOption.copyWith(
duration: defaultDuration / speed,
staticDuration: defaultStaticDuration / speed,
);
danmakuController!.updateOption(updatedOption);
}
_playbackSpeed.value = speed;
if (danmakuController != null) {
try {
DanmakuOption currentOption = danmakuController!.option;
double defaultDuration = currentOption.duration * lastPlaybackSpeed;
double defaultStaticDuration =
currentOption.staticDuration * lastPlaybackSpeed;
DanmakuOption updatedOption = currentOption.copyWith(
duration: defaultDuration / speed,
staticDuration: defaultStaticDuration / speed,
);
danmakuController!.updateOption(updatedOption);
} catch (_) {}
}
}
// 还原默认速度
@@ -1591,7 +1593,7 @@ class PlPlayerController {
if ((mode == FullScreenMode.vertical ||
(mode == FullScreenMode.auto && isVertical) ||
(mode == FullScreenMode.ratio &&
(isVertical || size.height / size.width < 1.25)))) {
(isVertical || size.height / size.width < kScreenRatio)))) {
await verticalScreenForTwoSeconds();
} else {
await landscape();
@@ -1740,10 +1742,10 @@ class PlPlayerController {
}
return;
}
_playerCount = 0;
disableAutoEnterPip();
setPlayCallBack(null);
dmState.clear();
_playerCount = 0;
_clearPreview();
Utils.channel.setMethodCallHandler(null);
_timer?.cancel();