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(
|
SettingsModel(
|
||||||
settingsType: SettingsType.sw1tch,
|
settingsType: SettingsType.sw1tch,
|
||||||
enableFeedback: true,
|
enableFeedback: true,
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ class VideoDetailController extends GetxController
|
|||||||
bool get showReply =>
|
bool get showReply =>
|
||||||
videoType == SearchType.video ? _showVideoReply : _showBangumiReply;
|
videoType == SearchType.video ? _showVideoReply : _showBangumiReply;
|
||||||
|
|
||||||
|
late final preInitPlayer = GStorage.preInitPlayer;
|
||||||
late final horizontalSeasonPanel = GStorage.horizontalSeasonPanel;
|
late final horizontalSeasonPanel = GStorage.horizontalSeasonPanel;
|
||||||
int? seasonCid;
|
int? seasonCid;
|
||||||
late RxInt seasonIndex = 0.obs;
|
late RxInt seasonIndex = 0.obs;
|
||||||
@@ -1205,6 +1206,8 @@ class VideoDetailController extends GetxController
|
|||||||
if (autoPlay.value) {
|
if (autoPlay.value) {
|
||||||
isShowCover.value = false;
|
isShowCover.value = false;
|
||||||
await playerInit();
|
await playerInit();
|
||||||
|
} else if (preInitPlayer) {
|
||||||
|
await playerInit();
|
||||||
}
|
}
|
||||||
isQuerying = false;
|
isQuerying = false;
|
||||||
return;
|
return;
|
||||||
@@ -1313,6 +1316,8 @@ class VideoDetailController extends GetxController
|
|||||||
if (autoPlay.value) {
|
if (autoPlay.value) {
|
||||||
isShowCover.value = false;
|
isShowCover.value = false;
|
||||||
await playerInit();
|
await playerInit();
|
||||||
|
} else if (preInitPlayer) {
|
||||||
|
await playerInit();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
autoPlay.value = false;
|
autoPlay.value = false;
|
||||||
|
|||||||
@@ -298,7 +298,11 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
|||||||
plPlayerController = videoDetailController.plPlayerController;
|
plPlayerController = videoDetailController.plPlayerController;
|
||||||
videoDetailController.isShowCover.value = false;
|
videoDetailController.isShowCover.value = false;
|
||||||
videoDetailController.autoPlay.value = true;
|
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!.addStatusLister(playerListener);
|
||||||
plPlayerController!.addPositionListener(positionListener);
|
plPlayerController!.addPositionListener(positionListener);
|
||||||
await plPlayerController!.autoEnterFullscreen();
|
await plPlayerController!.autoEnterFullscreen();
|
||||||
@@ -433,6 +437,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
|||||||
await videoDetailController.playerInit(
|
await videoDetailController.playerInit(
|
||||||
autoplay: videoDetailController.playerStatus == PlayerStatus.playing,
|
autoplay: videoDetailController.playerStatus == PlayerStatus.playing,
|
||||||
);
|
);
|
||||||
|
} else if (videoDetailController.preInitPlayer) {
|
||||||
|
await videoDetailController.playerInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (videoDetailController.playerStatus == PlayerStatus.playing) {
|
// if (videoDetailController.playerStatus == PlayerStatus.playing) {
|
||||||
|
|||||||
@@ -342,6 +342,9 @@ class GStorage {
|
|||||||
static int get superResolutionType =>
|
static int get superResolutionType =>
|
||||||
GStorage.setting.get(SettingBoxKey.superResolutionType, defaultValue: 0);
|
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
|
static List<double> get dynamicDetailRatio => List<double>.from(setting
|
||||||
.get(SettingBoxKey.dynamicDetailRatio, defaultValue: [60.0, 40.0]));
|
.get(SettingBoxKey.dynamicDetailRatio, defaultValue: [60.0, 40.0]));
|
||||||
|
|
||||||
@@ -565,6 +568,7 @@ class SettingBoxKey {
|
|||||||
showHotRcmd = 'showHotRcmd',
|
showHotRcmd = 'showHotRcmd',
|
||||||
audioNormalization = 'audioNormalization',
|
audioNormalization = 'audioNormalization',
|
||||||
superResolutionType = 'superResolutionType',
|
superResolutionType = 'superResolutionType',
|
||||||
|
preInitPlayer = 'preInitPlayer',
|
||||||
|
|
||||||
// Sponsor Block
|
// Sponsor Block
|
||||||
enableSponsorBlock = 'enableSponsorBlock',
|
enableSponsorBlock = 'enableSponsorBlock',
|
||||||
|
|||||||
Reference in New Issue
Block a user