mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: custom preinit player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1887,6 +1887,14 @@ List<SettingsModel> get extraSettings => [
|
||||
}
|
||||
},
|
||||
),
|
||||
SettingsModel(
|
||||
settingsType: SettingsType.sw1tch,
|
||||
title: '提前初始化播放器',
|
||||
subtitle: '相对减少手动播放加载时间',
|
||||
leading: Icon(Icons.play_circle_outlined),
|
||||
setKey: SettingBoxKey.preInitPlayer,
|
||||
defaultVal: false,
|
||||
),
|
||||
SettingsModel(
|
||||
settingsType: SettingsType.sw1tch,
|
||||
enableFeedback: true,
|
||||
|
||||
@@ -225,6 +225,7 @@ class VideoDetailController extends GetxController
|
||||
bool get showReply =>
|
||||
videoType == SearchType.video ? _showVideoReply : _showBangumiReply;
|
||||
|
||||
late final preInitPlayer = GStorage.preInitPlayer;
|
||||
late final horizontalSeasonPanel = GStorage.horizontalSeasonPanel;
|
||||
int? seasonCid;
|
||||
late RxInt seasonIndex = 0.obs;
|
||||
@@ -1205,6 +1206,8 @@ class VideoDetailController extends GetxController
|
||||
if (autoPlay.value) {
|
||||
isShowCover.value = false;
|
||||
await playerInit();
|
||||
} else if (preInitPlayer) {
|
||||
await playerInit();
|
||||
}
|
||||
isQuerying = false;
|
||||
return;
|
||||
@@ -1313,6 +1316,8 @@ class VideoDetailController extends GetxController
|
||||
if (autoPlay.value) {
|
||||
isShowCover.value = false;
|
||||
await playerInit();
|
||||
} else if (preInitPlayer) {
|
||||
await playerInit();
|
||||
}
|
||||
} else {
|
||||
autoPlay.value = false;
|
||||
|
||||
@@ -298,7 +298,11 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
plPlayerController = videoDetailController.plPlayerController;
|
||||
videoDetailController.isShowCover.value = false;
|
||||
videoDetailController.autoPlay.value = true;
|
||||
await videoDetailController.playerInit(autoplay: true);
|
||||
if (videoDetailController.preInitPlayer) {
|
||||
await plPlayerController!.play();
|
||||
} else {
|
||||
await videoDetailController.playerInit(autoplay: true);
|
||||
}
|
||||
plPlayerController!.addStatusLister(playerListener);
|
||||
plPlayerController!.addPositionListener(positionListener);
|
||||
await plPlayerController!.autoEnterFullscreen();
|
||||
@@ -433,6 +437,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
await videoDetailController.playerInit(
|
||||
autoplay: videoDetailController.playerStatus == PlayerStatus.playing,
|
||||
);
|
||||
} else if (videoDetailController.preInitPlayer) {
|
||||
await videoDetailController.playerInit();
|
||||
}
|
||||
|
||||
// if (videoDetailController.playerStatus == PlayerStatus.playing) {
|
||||
|
||||
@@ -342,6 +342,9 @@ class GStorage {
|
||||
static int get superResolutionType =>
|
||||
GStorage.setting.get(SettingBoxKey.superResolutionType, defaultValue: 0);
|
||||
|
||||
static bool get preInitPlayer =>
|
||||
GStorage.setting.get(SettingBoxKey.preInitPlayer, defaultValue: false);
|
||||
|
||||
static List<double> get dynamicDetailRatio => List<double>.from(setting
|
||||
.get(SettingBoxKey.dynamicDetailRatio, defaultValue: [60.0, 40.0]));
|
||||
|
||||
@@ -565,6 +568,7 @@ class SettingBoxKey {
|
||||
showHotRcmd = 'showHotRcmd',
|
||||
audioNormalization = 'audioNormalization',
|
||||
superResolutionType = 'superResolutionType',
|
||||
preInitPlayer = 'preInitPlayer',
|
||||
|
||||
// Sponsor Block
|
||||
enableSponsorBlock = 'enableSponsorBlock',
|
||||
|
||||
Reference in New Issue
Block a user