diff --git a/lib/pages/setting/widgets/model.dart b/lib/pages/setting/widgets/model.dart index d5645065..03e638c3 100644 --- a/lib/pages/setting/widgets/model.dart +++ b/lib/pages/setting/widgets/model.dart @@ -2130,6 +2130,13 @@ List get extraSettings => [ setKey: SettingBoxKey.showFSActionItem, defaultVal: true, ), + SettingsModel( + settingsType: SettingsType.sw1tch, + title: '启用双指缩小视频', + leading: const Icon(Icons.pinch), + setKey: SettingBoxKey.enableShrinkVideoSize, + defaultVal: true, + ), SettingsModel( settingsType: SettingsType.sw1tch, enableFeedback: true, diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index a2afb13e..2698ea6e 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -255,6 +255,7 @@ class PlPlayerController { Rx isOpenDanmu = false.obs; late final showFSActionItem = GStorage.showFSActionItem; + late final enableShrinkVideoSize = GStorage.enableShrinkVideoSize; /// 弹幕权重 int danmakuWeight = 0; diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index 2d24eabe..75993ca1 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -699,9 +699,11 @@ class _PLVideoPlayerState extends State transformationController: transformationController, panEnabled: false, // 启用平移 //单指平移会与横竖手势冲突 scaleEnabled: !plPlayerController.controlsLock.value, // 启用缩放 - minScale: 0.75, + minScale: plPlayerController.enableShrinkVideoSize ? 0.75 : 1, maxScale: 2.0, - boundaryMargin: const EdgeInsets.all(double.infinity), + boundaryMargin: plPlayerController.enableShrinkVideoSize + ? const EdgeInsets.all(double.infinity) + : EdgeInsets.zero, panAxis: PanAxis.aligned, onInteractionStart: (ScaleStartDetails details) { if (plPlayerController.controlsLock.value) return; diff --git a/lib/utils/storage.dart b/lib/utils/storage.dart index dc190957..d06673a1 100644 --- a/lib/utils/storage.dart +++ b/lib/utils/storage.dart @@ -397,6 +397,9 @@ class GStorage { static bool get showFSActionItem => GStorage.setting.get(SettingBoxKey.showFSActionItem, defaultValue: true); + static bool get enableShrinkVideoSize => GStorage.setting + .get(SettingBoxKey.enableShrinkVideoSize, defaultValue: true); + static List get dynamicDetailRatio => List.from(setting .get(SettingBoxKey.dynamicDetailRatio, defaultValue: [60.0, 40.0])); @@ -653,6 +656,7 @@ class SettingBoxKey { enableHttp2 = 'enableHttp2', slideDismissReplyPage = 'slideDismissReplyPage', showFSActionItem = 'showFSActionItem', + enableShrinkVideoSize = 'enableShrinkVideoSize', // Sponsor Block enableSponsorBlock = 'enableSponsorBlock',