diff --git a/lib/pages/live_room/widgets/header_control.dart b/lib/pages/live_room/widgets/header_control.dart index e3e9fcf3e..a15cad472 100644 --- a/lib/pages/live_room/widgets/header_control.dart +++ b/lib/pages/live_room/widgets/header_control.dart @@ -141,16 +141,38 @@ class _LiveHeaderControlState extends State onTap: () => plPlayerController.setAlwaysOnTop(!isAlwaysOnTop), ); }), - ComBtn( - height: 30, - tooltip: '发弹幕', - icon: const Icon( - size: 18, - Icons.comment_outlined, - color: Colors.white, + if (isFullScreen || Utils.isDesktop) + ComBtn( + height: 30, + tooltip: '发弹幕', + icon: const Icon( + size: 18, + Icons.comment_outlined, + color: Colors.white, + ), + onTap: widget.onSendDanmaku, + ), + if (Platform.isAndroid || (Utils.isDesktop && !isFullScreen)) + ComBtn( + height: 30, + tooltip: '画中画', + onTap: () async { + if (Utils.isDesktop) { + plPlayerController.toggleDesktopPip(); + return; + } + if (await Floating().isPipAvailable) { + plPlayerController + ..showControls.value = false + ..enterPip(); + } + }, + icon: const Icon( + size: 18, + Icons.picture_in_picture_outlined, + color: Colors.white, + ), ), - onTap: widget.onSendDanmaku, - ), Obx( () { final onlyPlayAudio = plPlayerController.onlyPlayAudio.value; @@ -175,27 +197,26 @@ class _LiveHeaderControlState extends State ); }, ), - if (Platform.isAndroid || (Utils.isDesktop && !isFullScreen)) - ComBtn( + Obx(() { + final continuePlayInBackground = + plPlayerController.continuePlayInBackground.value; + return ComBtn( height: 30, - tooltip: '画中画', - onTap: () async { - if (Utils.isDesktop) { - plPlayerController.toggleDesktopPip(); - return; - } - if (await Floating().isPipAvailable) { - plPlayerController - ..showControls.value = false - ..enterPip(); - } - }, - icon: const Icon( - size: 18, - Icons.picture_in_picture_outlined, - color: Colors.white, - ), - ), + tooltip: '${continuePlayInBackground ? '关闭' : ''}后台播放', + onTap: plPlayerController.setContinuePlayInBackground, + icon: continuePlayInBackground + ? const Icon( + size: 18, + Icons.play_circle, + color: Colors.white, + ) + : const Icon( + size: 18, + Icons.play_circle_outline, + color: Colors.white, + ), + ); + }), ComBtn( height: 30, tooltip: '定时关闭', diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index a433fba82..8fb5787aa 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -2680,7 +2680,7 @@ class HeaderControlState extends State : const SizedBox.shrink(), ), ], - if (isFSOrPip || Utils.isDesktop) ...[ + if (isFullScreen || Utils.isDesktop) ...[ SizedBox( width: 42, height: 34,