mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: 全屏手势反向
This commit is contained in:
@@ -157,6 +157,12 @@ class _PlaySettingState extends State<PlaySetting> {
|
||||
setKey: SettingBoxKey.enableQuickDouble,
|
||||
defaultVal: true,
|
||||
),
|
||||
const SetSwitchItem(
|
||||
title: '全屏手势反向',
|
||||
subTitle: '默认播放器中部向上滑动进入全屏,向下退出\n开启后向下全屏,向上退出',
|
||||
setKey: SettingBoxKey.fullScreenGestureReverse,
|
||||
defaultVal: false,
|
||||
),
|
||||
const SetSwitchItem(
|
||||
title: '弹幕开关',
|
||||
subTitle: '展示弹幕',
|
||||
|
||||
@@ -72,6 +72,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
late FullScreenMode mode;
|
||||
late int defaultBtmProgressBehavior;
|
||||
late bool enableQuickDouble;
|
||||
late bool fullScreenGestureReverse;
|
||||
late bool enableBackgroundPlay;
|
||||
|
||||
// 用于记录上一次全屏切换手势触发时间,避免误触
|
||||
@@ -126,6 +127,8 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
defaultValue: BtmProgresBehavior.values.first.code);
|
||||
enableQuickDouble =
|
||||
setting.get(SettingBoxKey.enableQuickDouble, defaultValue: true);
|
||||
fullScreenGestureReverse = setting.get(SettingBoxKey.fullScreenGestureReverse,
|
||||
defaultValue: false);
|
||||
enableBackgroundPlay =
|
||||
setting.get(SettingBoxKey.enableBackgroundPlay, defaultValue: false);
|
||||
Future.microtask(() async {
|
||||
@@ -522,18 +525,20 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
// 全屏
|
||||
final double dy = details.delta.dy;
|
||||
const double threshold = 7.0; // 滑动阈值
|
||||
void fullScreenTrigger(bool status) async {
|
||||
lastFullScreenToggleTime = DateTime.now();
|
||||
await widget.controller.triggerFullScreen(status: status);
|
||||
}
|
||||
if (dy > _distance && dy > threshold) {
|
||||
if (_.isFullScreen.value) {
|
||||
lastFullScreenToggleTime = DateTime.now();
|
||||
// 下滑退出全屏
|
||||
await widget.controller.triggerFullScreen(status: false);
|
||||
// 下滑退出全屏/进入全屏
|
||||
if (_.isFullScreen.value ^ fullScreenGestureReverse) {
|
||||
fullScreenTrigger(fullScreenGestureReverse);
|
||||
}
|
||||
_distance = 0.0;
|
||||
} else if (dy < _distance && dy < -threshold) {
|
||||
if (!_.isFullScreen.value) {
|
||||
lastFullScreenToggleTime = DateTime.now();
|
||||
// 上滑进入全屏
|
||||
await widget.controller.triggerFullScreen();
|
||||
// 上划进入全屏/退出全屏
|
||||
if (!_.isFullScreen.value ^ fullScreenGestureReverse) {
|
||||
fullScreenTrigger(!fullScreenGestureReverse);
|
||||
}
|
||||
_distance = 0.0;
|
||||
}
|
||||
|
||||
@@ -97,6 +97,7 @@ class SettingBoxKey {
|
||||
|
||||
// youtube 双击快进快退
|
||||
enableQuickDouble = 'enableQuickDouble',
|
||||
fullScreenGestureReverse = 'fullScreenGestureReverse',
|
||||
enableShowDanmaku = 'enableShowDanmaku',
|
||||
enableBackgroundPlay = 'enableBackgroundPlay',
|
||||
|
||||
|
||||
Reference in New Issue
Block a user