diff --git a/lib/pages/live_room/widgets/bottom_control.dart b/lib/pages/live_room/widgets/bottom_control.dart index b70648941..4c32c4d59 100644 --- a/lib/pages/live_room/widgets/bottom_control.dart +++ b/lib/pages/live_room/widgets/bottom_control.dart @@ -169,27 +169,28 @@ class BottomControl extends StatelessWidget { ), ), ), - ComBtn( - height: 30, - tooltip: isFullScreen ? '退出全屏' : '全屏', - icon: isFullScreen - ? const Icon( - Icons.fullscreen_exit, - size: 24, - color: Colors.white, - ) - : const Icon( - Icons.fullscreen, - size: 24, - color: Colors.white, - ), - onTap: () => - plPlayerController.triggerFullScreen(status: !isFullScreen), - onSecondaryTap: () => plPlayerController.triggerFullScreen( - status: !isFullScreen, - inAppFullScreen: true, + if (!plPlayerController.isDesktopPip) + ComBtn( + height: 30, + tooltip: isFullScreen ? '退出全屏' : '全屏', + icon: isFullScreen + ? const Icon( + Icons.fullscreen_exit, + size: 24, + color: Colors.white, + ) + : const Icon( + Icons.fullscreen, + size: 24, + color: Colors.white, + ), + onTap: () => + plPlayerController.triggerFullScreen(status: !isFullScreen), + onSecondaryTap: () => plPlayerController.triggerFullScreen( + status: !isFullScreen, + inAppFullScreen: true, + ), ), - ), ], ), ); diff --git a/lib/pages/live_room/widgets/header_control.dart b/lib/pages/live_room/widgets/header_control.dart index 3cf474908..4e2de4a28 100644 --- a/lib/pages/live_room/widgets/header_control.dart +++ b/lib/pages/live_room/widgets/header_control.dart @@ -110,7 +110,7 @@ class LiveHeaderControl extends StatelessWidget { ); }, ), - if (Platform.isAndroid || Utils.isDesktop) + if (Platform.isAndroid || (Utils.isDesktop && !isFullScreen)) ComBtn( tooltip: '画中画', onTap: () async { diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index 5964bcb3f..332bfddf7 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -2450,7 +2450,7 @@ class HeaderControlState extends State { ), ), ], - if (Platform.isAndroid || Utils.isDesktop) + if (Platform.isAndroid || (Utils.isDesktop && !isFullScreen)) SizedBox( width: 42, height: 34, diff --git a/lib/pages/video/widgets/player_focus.dart b/lib/pages/video/widgets/player_focus.dart index e9197c37f..024e3f587 100644 --- a/lib/pages/video/widgets/player_focus.dart +++ b/lib/pages/video/widgets/player_focus.dart @@ -180,7 +180,7 @@ class PlayerFocus extends StatelessWidget { return true; case LogicalKeyboardKey.keyP: - if (Utils.isDesktop && hasPlayer) { + if (Utils.isDesktop && hasPlayer && !isFullScreen) { plPlayerController ..toggleDesktopPip() ..controlsLock.value = false; diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index e672607dd..0e137a7dc 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -281,6 +281,8 @@ class PlPlayerController { } Future enterDesktopPip() async { + if (isFullScreen.value) return; + isDesktopPip = true; _lastWindowBounds = await windowManager.getBounds(); @@ -1572,6 +1574,7 @@ class PlPlayerController { bool isManualFS = true, FullScreenMode? mode, }) async { + if (isDesktopPip) return; if (isFullScreen.value == status) return; if (fsProcessing) { @@ -1916,4 +1919,4 @@ class PlPlayerController { } }); } -} \ No newline at end of file +} diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index 3b9186e4e..04fd0a211 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -843,7 +843,7 @@ class _PLVideoPlayerState extends State BottomControlType.subtitle, BottomControlType.speed, if (flag) BottomControlType.qa, - BottomControlType.fullscreen, + if (!plPlayerController.isDesktopPip) BottomControlType.fullscreen, ]; return Row(