fix: 长按取消后弹幕速度异常

This commit is contained in:
guozhigq
2023-10-17 23:00:48 +08:00
parent 41e9cfcbbb
commit d0590933e0

View File

@ -214,6 +214,8 @@ class PlPlayerController {
late double fontSizeVal;
late double danmakuSpeedVal;
late List speedsList;
// 缓存
double? defaultDuration;
// 播放顺序相关
PlayRepeat playRepeat = PlayRepeat.pause;
@ -573,8 +575,9 @@ class PlPlayerController {
await _videoPlayerController?.setRate(speed);
try {
DanmakuOption currentOption = danmakuController!.option;
defaultDuration ??= currentOption.duration;
DanmakuOption updatedOption = currentOption.copyWith(
duration: (currentOption.duration / speed) * playbackSpeed);
duration: (defaultDuration! / speed) * playbackSpeed);
danmakuController!.updateOption(updatedOption);
} catch (_) {}
// fix 长按倍速后放开不恢复
@ -582,16 +585,16 @@ class PlPlayerController {
}
/// 设置倍速
Future<void> togglePlaybackSpeed() async {
List<double> allowedSpeeds =
PlaySpeed.values.map<double>((e) => e.value).toList();
int index = allowedSpeeds.indexOf(_playbackSpeed.value);
if (index < allowedSpeeds.length - 1) {
setPlaybackSpeed(allowedSpeeds[index + 1]);
} else {
setPlaybackSpeed(allowedSpeeds[0]);
}
}
// Future<void> togglePlaybackSpeed() async {
// List<double> allowedSpeeds =
// PlaySpeed.values.map<double>((e) => e.value).toList();
// int index = allowedSpeeds.indexOf(_playbackSpeed.value);
// if (index < allowedSpeeds.length - 1) {
// setPlaybackSpeed(allowedSpeeds[index + 1]);
// } else {
// setPlaybackSpeed(allowedSpeeds[0]);
// }
// }
/// 播放视频
Future<void> play({bool repeat = false, bool hideControls = true}) async {