mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-16 22:30:16 +08:00
refa: danmaku & feat: scroll fixed velocity (#1791)
This commit is contained in:
committed by
GitHub
parent
0a40d11133
commit
49b7ea14c3
@@ -19,6 +19,7 @@ import 'package:PiliPlus/pages/live_room/send_danmaku/view.dart';
|
||||
import 'package:PiliPlus/pages/video/widgets/header_control.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/controller.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/models/data_source.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/utils/danmaku_options.dart';
|
||||
import 'package:PiliPlus/services/service_locator.dart';
|
||||
import 'package:PiliPlus/tcp/live.dart';
|
||||
import 'package:PiliPlus/utils/accounts.dart';
|
||||
@@ -433,7 +434,7 @@ class LiveRoomController extends GetxController {
|
||||
danmakuController?.addDanmaku(
|
||||
DanmakuContentItem(
|
||||
msg,
|
||||
color: plPlayerController.blockColorful
|
||||
color: DanmakuOptions.blockColorful
|
||||
? Colors.white
|
||||
: DmUtils.decimalToColor(extra['color']),
|
||||
type: DmUtils.getPosition(extra['mode']),
|
||||
|
||||
@@ -20,6 +20,7 @@ import 'package:PiliPlus/pages/live_room/widgets/header_control.dart';
|
||||
import 'package:PiliPlus/pages/video/widgets/player_focus.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/controller.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/models/play_status.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/utils/danmaku_options.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/utils/fullscreen.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/view.dart';
|
||||
import 'package:PiliPlus/services/service_locator.dart';
|
||||
@@ -974,6 +975,8 @@ class LiveDanmaku extends StatefulWidget {
|
||||
|
||||
@override
|
||||
State<LiveDanmaku> createState() => _LiveDanmakuState();
|
||||
|
||||
bool get notFullscreen => !isFullScreen || isPipMode;
|
||||
}
|
||||
|
||||
class _LiveDanmakuState extends State<LiveDanmaku> {
|
||||
@@ -982,27 +985,13 @@ class _LiveDanmakuState extends State<LiveDanmaku> {
|
||||
@override
|
||||
void didUpdateWidget(LiveDanmaku oldWidget) {
|
||||
super.didUpdateWidget(oldWidget);
|
||||
if (oldWidget.isPipMode != widget.isPipMode ||
|
||||
oldWidget.isFullScreen != widget.isFullScreen) {
|
||||
_updateFontSize();
|
||||
if (oldWidget.notFullscreen != widget.notFullscreen) {
|
||||
plPlayerController.danmakuController?.updateOption(
|
||||
DanmakuOptions.get(notFullscreen: widget.notFullscreen),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void _updateFontSize() {
|
||||
plPlayerController.danmakuController?.updateOption(
|
||||
plPlayerController.danmakuController!.option.copyWith(
|
||||
fontSize: _fontSize,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
double get _fontSize =>
|
||||
plPlayerController.isDesktopPip ||
|
||||
!widget.isFullScreen ||
|
||||
widget.isPipMode
|
||||
? 15 * plPlayerController.danmakuFontScale
|
||||
: 15 * plPlayerController.danmakuFontScaleFS;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Obx(
|
||||
@@ -1017,22 +1006,7 @@ class _LiveDanmakuState extends State<LiveDanmaku> {
|
||||
widget.liveRoomController.danmakuController =
|
||||
plPlayerController.danmakuController = e;
|
||||
},
|
||||
option: DanmakuOption(
|
||||
fontSize: _fontSize,
|
||||
fontWeight: plPlayerController.danmakuFontWeight,
|
||||
area: plPlayerController.showArea,
|
||||
hideTop: plPlayerController.blockTypes.contains(5),
|
||||
hideScroll: plPlayerController.blockTypes.contains(2),
|
||||
hideBottom: plPlayerController.blockTypes.contains(4),
|
||||
duration:
|
||||
plPlayerController.danmakuDuration /
|
||||
plPlayerController.playbackSpeed,
|
||||
staticDuration:
|
||||
plPlayerController.danmakuStaticDuration /
|
||||
plPlayerController.playbackSpeed,
|
||||
strokeWidth: plPlayerController.danmakuStrokeWidth,
|
||||
lineHeight: plPlayerController.danmakuLineHeight,
|
||||
),
|
||||
option: DanmakuOptions.get(notFullscreen: widget.notFullscreen),
|
||||
),
|
||||
);
|
||||
},
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'package:PiliPlus/common/widgets/custom_icon.dart';
|
||||
import 'package:PiliPlus/pages/live_room/controller.dart';
|
||||
import 'package:PiliPlus/pages/video/widgets/header_control.dart'
|
||||
show HeaderMixin;
|
||||
import 'package:PiliPlus/pages/video/widgets/header_mixin.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/controller.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/models/video_fit_type.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/widgets/common_btn.dart';
|
||||
|
||||
Reference in New Issue
Block a user