custom keyboard control

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-18 18:20:23 +08:00
parent 2d625e0241
commit 9c552a89e1
6 changed files with 46 additions and 31 deletions

View File

@@ -181,22 +181,23 @@ class _LiveRoomPageState extends State<LiveRoomPage>
@override
Widget build(BuildContext context) {
if (Platform.isAndroid) {
if (Floating().isPipMode) {
return videoPlayerPanel(
isFullScreen,
width: maxWidth,
height: maxHeight,
isPipMode: true,
needDm: !plPlayerController.pipNoDanmaku,
);
}
if (Platform.isAndroid && Floating().isPipMode) {
return videoPlayerPanel(
isFullScreen,
width: maxWidth,
height: maxHeight,
isPipMode: true,
needDm: !plPlayerController.pipNoDanmaku,
);
}
return PlayerFocus(
plPlayerController: plPlayerController,
onSendDanmaku: _liveRoomController.onSendDanmaku,
child: childWhenDisabled,
);
if (plPlayerController.keyboardControl) {
return PlayerFocus(
plPlayerController: plPlayerController,
onSendDanmaku: _liveRoomController.onSendDanmaku,
child: childWhenDisabled,
);
}
return childWhenDisabled;
}
Widget videoPlayerPanel(

View File

@@ -130,6 +130,13 @@ List<SettingsModel> get playSettings => [
}
},
),
const SettingsModel(
settingsType: SettingsType.sw1tch,
title: '启用键盘控制',
leading: Icon(Icons.keyboard_alt_outlined),
setKey: SettingBoxKey.keyboardControl,
defaultVal: true,
),
const SettingsModel(
settingsType: SettingsType.sw1tch,
title: '显示 SuperChat',

View File

@@ -1484,21 +1484,23 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
} else {
child = autoChoose(childWhenDisabledAlmostSquare);
}
child = PlayerFocus(
plPlayerController: videoDetailController.plPlayerController,
introController: videoDetailController.isUgc
? ugcIntroController
: pgcIntroController,
onSendDanmaku: videoDetailController.showShootDanmakuSheet,
canPlay: () {
if (videoDetailController.autoPlay.value) {
return true;
}
handlePlay();
return false;
},
child: child,
);
if (videoDetailController.plPlayerController.keyboardControl) {
child = PlayerFocus(
plPlayerController: videoDetailController.plPlayerController,
introController: videoDetailController.isUgc
? ugcIntroController
: pgcIntroController,
onSendDanmaku: videoDetailController.showShootDanmakuSheet,
canPlay: () {
if (videoDetailController.autoPlay.value) {
return true;
}
handlePlay();
return false;
},
child: child,
);
}
return videoDetailController.plPlayerController.darkVideoPage
? Theme(data: themeData, child: child)
: child;