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