Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-21 12:46:34 +08:00
parent 5f3f158932
commit 604d78ad6a
161 changed files with 4873 additions and 4770 deletions

View File

@@ -6,7 +6,6 @@ import 'package:PiliPlus/pages/danmaku/controller.dart';
import 'package:PiliPlus/plugin/pl_player/controller.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_status.dart';
import 'package:PiliPlus/utils/danmaku_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:canvas_danmaku/canvas_danmaku.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -33,7 +32,6 @@ class _PlDanmakuState extends State<PlDanmaku> {
late PlDanmakuController _plDanmakuController;
DanmakuController? _controller;
late bool enableShowDanmaku;
int latestAddedPosition = -1;
bool? _isFullScreen;
StreamSubscription? _listenerFS;
@@ -41,13 +39,11 @@ class _PlDanmakuState extends State<PlDanmaku> {
@override
void initState() {
super.initState();
enableShowDanmaku = GStorage.setting
.get(SettingBoxKey.enableShowDanmaku, defaultValue: true);
_plDanmakuController = PlDanmakuController(
widget.cid,
playerController,
);
if (enableShowDanmaku || playerController.isOpenDanmu.value) {
if (playerController.enableShowDanmaku.value) {
_plDanmakuController.queryDanmaku(
_plDanmakuController.calcSegment(
playerController.position.value.inMilliseconds,
@@ -81,7 +77,7 @@ class _PlDanmakuState extends State<PlDanmaku> {
}
void videoPositionListen(Duration position) {
if (!playerController.isOpenDanmu.value) {
if (!playerController.enableShowDanmaku.value) {
return;
}
@@ -151,8 +147,8 @@ class _PlDanmakuState extends State<PlDanmaku> {
double _getFontSize(bool isFullScreen) =>
!isFullScreen || widget.isPipMode == true
? 15 * playerController.fontSize
: 15 * playerController.fontSizeFS;
? 15 * playerController.danmakuFontScale
: 15 * playerController.danmakuFontScaleFS;
@override
Widget build(BuildContext context) {
@@ -160,7 +156,7 @@ class _PlDanmakuState extends State<PlDanmaku> {
// double initDuration = box.maxWidth / 12;
return Obx(
() => AnimatedOpacity(
opacity: playerController.isOpenDanmu.value ? 1 : 0,
opacity: playerController.enableShowDanmaku.value ? 1 : 0,
duration: const Duration(milliseconds: 100),
child: DanmakuScreen(
createdController: (DanmakuController e) {
@@ -170,7 +166,7 @@ class _PlDanmakuState extends State<PlDanmaku> {
fontSize: _getFontSize(playerController.isFullScreen.value),
fontWeight: playerController.fontWeight,
area: playerController.showArea,
opacity: playerController.opacity,
opacity: playerController.danmakuOpacity,
hideTop: playerController.blockTypes.contains(5),
hideScroll: playerController.blockTypes.contains(2),
hideBottom: playerController.blockTypes.contains(4),