// Author: fruit.com.cn import 'package:flutter/widgets.dart'; import 'package:video_player/video_player.dart'; import '../../../core/data/models/drama.dart'; import '../../../l10n/app_localizations.dart'; /// 播放浮层展示数据。 class PlayerOverlayData { /// 创建播放浮层数据。 const PlayerOverlayData({ required this.l10n, required this.drama, required this.episode, required this.controller, required this.liked, required this.likeCount, required this.commentCount, required this.favoriteCount, required this.saved, required this.playing, required this.playbackSpeed, required this.totalEpisodes, required this.boosting, this.authorNote = '', }); /// 当前语言包。 final AppLocalizations l10n; /// 当前短剧。 final Drama drama; /// 当前剧集。 final Episode episode; /// 当前播放器。 final VideoPlayerController? controller; /// 是否已点赞。 final bool liked; /// 点赞数;未知时隐藏。 final int? likeCount; /// 评论数;未知时隐藏。 final int? commentCount; /// 收藏数;未知时隐藏。 final int? favoriteCount; /// 是否已收藏。 final bool saved; /// 是否处于播放状态。 final bool playing; /// 当前倍速。 final double playbackSpeed; /// 可见集数量。 final int totalEpisodes; /// 是否处于长按加速态。 final bool boosting; /// 作者声明;没有后端字段时为空。 final String authorNote; } /// 播放浮层动作集合。 class PlayerOverlayActions { /// 创建动作集合。 const PlayerOverlayActions({ required this.onBack, required this.onTogglePlay, required this.onClear, required this.onExitClear, required this.onDetail, required this.onSpeed, required this.onEpisodes, required this.onComments, required this.onLike, required this.onSave, required this.onShare, required this.onMore, required this.onScrubStart, required this.onSeek, required this.onLongPressCenter, required this.onBoostStart, required this.onBoostEnd, }); /// 返回上一页。 final VoidCallback? onBack; /// 切换播放状态。 final VoidCallback onTogglePlay; /// 进入清屏。 final VoidCallback onClear; /// 退出清屏。 final VoidCallback onExitClear; /// 打开详情。 final VoidCallback onDetail; /// 打开顶部倍速入口。 final VoidCallback onSpeed; /// 打开选集。 final VoidCallback onEpisodes; /// 打开评论。 final VoidCallback onComments; /// 切换点赞。 final VoidCallback onLike; /// 切换收藏。 final VoidCallback onSave; /// 分享。 final VoidCallback onShare; /// 打开更多面板。 final VoidCallback onMore; /// 开始拖动进度。 final VoidCallback? onScrubStart; /// 提交进度跳转。 final Future Function(Duration)? onSeek; /// 长按画面中间:弹出更多面板。 final VoidCallback onLongPressCenter; /// 长按画面两侧:开始加速。 final VoidCallback onBoostStart; /// 长按结束或取消:结束加速。 final VoidCallback onBoostEnd; }