Skip to content

Commit 1483e38

Browse files
committed
feat: auto play next switch
1 parent f4ae861 commit 1483e38

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

lib/pages/player/player_item.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class _PlayerItemState extends State<PlayerItem>
106106

107107
// 硬件解码
108108
late bool haEnable;
109+
late bool autoPlayNext;
109110

110111
Timer? hideTimer;
111112
Timer? playerTimer;
@@ -705,7 +706,7 @@ class _PlayerItemState extends State<PlayerItem>
705706
videoPageController.currentEpisode <
706707
videoPageController
707708
.roadList[videoPageController.currentRoad].data.length &&
708-
!videoPageController.loading) {
709+
!videoPageController.loading && autoPlayNext) {
709710
KazumiDialog.showToast(
710711
message:
711712
'正在加载${videoPageController.roadList[videoPageController.currentRoad].identifier[videoPageController.currentEpisode]}');
@@ -1299,6 +1300,7 @@ class _PlayerItemState extends State<PlayerItem>
12991300
_danmakuUseSystemFont =
13001301
setting.get(SettingBoxKey.useSystemFont, defaultValue: false);
13011302
haEnable = setting.get(SettingBoxKey.hAenable, defaultValue: true);
1303+
autoPlayNext = setting.get(SettingBoxKey.autoPlayNext, defaultValue: true);
13021304
playerTimer = getPlayerTimer();
13031305
windowManager.addListener(this);
13041306
displayVideoController();

lib/pages/settings/player_settings.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class _PlayerSettingsPageState extends State<PlayerSettingsPage> {
2929
late bool playerDebugMode;
3030
late bool playerDisableAnimations;
3131
late bool forceAdBlocker;
32+
late bool autoPlayNext;
3233
late int playerButtonSkipTime;
3334
late int playerArrowKeySkipTime;
3435
late int playerLogLevel;
@@ -53,6 +54,7 @@ class _PlayerSettingsPageState extends State<PlayerSettingsPage> {
5354
setting.get(SettingBoxKey.showPlayerError, defaultValue: true);
5455
playerDebugMode =
5556
setting.get(SettingBoxKey.playerDebugMode, defaultValue: false);
57+
autoPlayNext = setting.get(SettingBoxKey.autoPlayNext, defaultValue: true);
5658
playerDisableAnimations =
5759
setting.get(SettingBoxKey.playerDisableAnimations, defaultValue: false);
5860
forceAdBlocker =
@@ -235,6 +237,16 @@ class _PlayerSettingsPageState extends State<PlayerSettingsPage> {
235237
description: Text('跳转到上次播放位置', style: TextStyle(fontFamily: fontFamily)),
236238
initialValue: playResume,
237239
),
240+
SettingsTile.switchTile(
241+
onToggle: (value) async {
242+
autoPlayNext = value ?? !autoPlayNext;
243+
await setting.put(SettingBoxKey.autoPlayNext, autoPlayNext);
244+
setState(() {});
245+
},
246+
title: Text('自动连播', style: TextStyle(fontFamily: fontFamily)),
247+
description: Text('当前视频播放完毕后自动播放下一集', style: TextStyle(fontFamily: fontFamily)),
248+
initialValue: autoPlayNext,
249+
),
238250
SettingsTile.switchTile(
239251
onToggle: (value) async {
240252
forceAdBlocker = value ?? !forceAdBlocker;

lib/utils/storage.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ class SettingBoxKey {
236236
themeColor = 'themeColor',
237237
privateMode = 'privateMode',
238238
autoPlay = 'autoPlay',
239+
autoPlayNext = 'autoPlayNext',
239240
playResume = 'playResume',
240241
showPlayerError = 'showPlayerError',
241242
oledEnhance = 'oledEnhance',

0 commit comments

Comments
 (0)