mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: 重构选集功能,播放器添加选集,修复连播退全屏、无法保存已看完状态
This commit is contained in:
@@ -146,28 +146,30 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
void playerListener(PlayerStatus? status) async {
|
||||
playerStatus = status!;
|
||||
if (status == PlayerStatus.completed) {
|
||||
// 结束播放退出全屏
|
||||
if (autoExitFullcreen) {
|
||||
plPlayerController!.triggerFullScreen(status: false);
|
||||
}
|
||||
shutdownTimerService.handleWaitingFinished();
|
||||
|
||||
bool notExitFlag = false;
|
||||
/// 顺序播放 列表循环
|
||||
if (plPlayerController!.playRepeat != PlayRepeat.pause &&
|
||||
plPlayerController!.playRepeat != PlayRepeat.singleCycle) {
|
||||
if (videoDetailController.videoType == SearchType.video) {
|
||||
videoIntroController.nextPlay();
|
||||
notExitFlag = videoIntroController.nextPlay();
|
||||
}
|
||||
if (videoDetailController.videoType == SearchType.media_bangumi) {
|
||||
bangumiIntroController.nextPlay();
|
||||
notExitFlag = bangumiIntroController.nextPlay();
|
||||
}
|
||||
}
|
||||
|
||||
/// 单个循环
|
||||
if (plPlayerController!.playRepeat == PlayRepeat.singleCycle) {
|
||||
notExitFlag = true;
|
||||
plPlayerController!.seekTo(Duration.zero);
|
||||
plPlayerController!.play();
|
||||
}
|
||||
|
||||
// 结束播放退出全屏
|
||||
if (!notExitFlag && autoExitFullcreen) {
|
||||
plPlayerController!.triggerFullScreen(status: false);
|
||||
}
|
||||
// 播放完展示控制栏
|
||||
if (videoDetailController.floating != null) {
|
||||
PiPStatus currentStatus =
|
||||
@@ -263,6 +265,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
// 离开当前页面时
|
||||
void didPushNext() async {
|
||||
_bufferedListener?.cancel();
|
||||
|
||||
/// 开启
|
||||
if (setting.get(SettingBoxKey.enableAutoBrightness, defaultValue: false)
|
||||
as bool) {
|
||||
@@ -449,6 +452,19 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
: PLVideoPlayer(
|
||||
controller:
|
||||
plPlayerController!,
|
||||
videoIntroController:
|
||||
videoDetailController
|
||||
.videoType ==
|
||||
SearchType.video
|
||||
? videoIntroController
|
||||
: null,
|
||||
bangumiIntroController:
|
||||
videoDetailController
|
||||
.videoType ==
|
||||
SearchType
|
||||
.media_bangumi
|
||||
? bangumiIntroController
|
||||
: null,
|
||||
headerControl:
|
||||
videoDetailController
|
||||
.headerControl,
|
||||
@@ -702,6 +718,20 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
: PLVideoPlayer(
|
||||
controller:
|
||||
plPlayerController!,
|
||||
videoIntroController:
|
||||
videoDetailController
|
||||
.videoType ==
|
||||
SearchType
|
||||
.video
|
||||
? videoIntroController
|
||||
: null,
|
||||
bangumiIntroController:
|
||||
videoDetailController
|
||||
.videoType ==
|
||||
SearchType
|
||||
.media_bangumi
|
||||
? bangumiIntroController
|
||||
: null,
|
||||
headerControl:
|
||||
videoDetailController
|
||||
.headerControl,
|
||||
@@ -875,6 +905,14 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
? const SizedBox()
|
||||
: PLVideoPlayer(
|
||||
controller: plPlayerController!,
|
||||
videoIntroController:
|
||||
videoDetailController.videoType == SearchType.video
|
||||
? videoIntroController
|
||||
: null,
|
||||
bangumiIntroController:
|
||||
videoDetailController.videoType == SearchType.media_bangumi
|
||||
? bangumiIntroController
|
||||
: null,
|
||||
headerControl: HeaderControl(
|
||||
controller: plPlayerController,
|
||||
videoDetailCtr: videoDetailController,
|
||||
|
||||
Reference in New Issue
Block a user