mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
fix: 单个循环失效、继续播放时控件跳跃、冗余参数移除、typo修正
This commit is contained in:
@@ -53,7 +53,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
final Box<dynamic> setting = GStrorage.setting;
|
||||
late Future _futureBuilderFuture;
|
||||
// 自动退出全屏
|
||||
late bool autoExitFullcreen;
|
||||
late bool autoExitFullscreen;
|
||||
late bool autoPlayEnable;
|
||||
late bool horizontalScreen;
|
||||
late bool enableVerticalExpand;
|
||||
@@ -94,7 +94,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
videoPlayerServiceHandler.onVideoDetailChange(
|
||||
bangumiIntroController.bangumiDetail.value, p0);
|
||||
});
|
||||
autoExitFullcreen =
|
||||
autoExitFullscreen =
|
||||
setting.get(SettingBoxKey.enableAutoExit, defaultValue: true);
|
||||
horizontalScreen =
|
||||
setting.get(SettingBoxKey.horizontalScreen, defaultValue: false);
|
||||
@@ -174,16 +174,15 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
/// 单个循环
|
||||
if (plPlayerController!.playRepeat == PlayRepeat.singleCycle) {
|
||||
notExitFlag = true;
|
||||
plPlayerController!.seekTo(Duration.zero);
|
||||
plPlayerController!.play();
|
||||
plPlayerController!.play(repeat: true);
|
||||
}
|
||||
|
||||
// 结束播放退出全屏
|
||||
if (!notExitFlag && autoExitFullcreen) {
|
||||
if (!notExitFlag && autoExitFullscreen) {
|
||||
plPlayerController!.triggerFullScreen(status: false);
|
||||
}
|
||||
// 播放完展示控制栏
|
||||
if (videoDetailController.floating != null) {
|
||||
if (videoDetailController.floating != null && !notExitFlag) {
|
||||
PiPStatus currentStatus =
|
||||
await videoDetailController.floating!.pipStatus;
|
||||
if (currentStatus == PiPStatus.disabled) {
|
||||
@@ -311,7 +310,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
videoDetailController.isFirstTime = false;
|
||||
final bool autoplay = autoPlayEnable;
|
||||
videoDetailController.autoPlay.value =
|
||||
!videoDetailController.isShowCover.value;
|
||||
!videoDetailController.isShowCover.value;
|
||||
await videoDetailController.playerInit(autoplay: autoplay);
|
||||
|
||||
/// 未开启自动播放时,未播放跳转下一页返回/播放后跳转下一页返回
|
||||
|
||||
@@ -289,9 +289,9 @@ class PlPlayerController {
|
||||
}
|
||||
|
||||
static Future<void> playIfExists(
|
||||
{bool repeat = false, bool hideControls = true, dynamic duration}) async {
|
||||
{bool repeat = false, bool hideControls = true}) async {
|
||||
await _instance?.play(
|
||||
repeat: repeat, hideControls: hideControls, duration: duration);
|
||||
repeat: repeat, hideControls: hideControls);
|
||||
}
|
||||
|
||||
// try to get PlayerStatus
|
||||
@@ -610,8 +610,7 @@ class PlPlayerController {
|
||||
|
||||
// 开始播放
|
||||
Future _initializePlayer({
|
||||
Duration seekTo = Duration.zero,
|
||||
Duration? duration,
|
||||
Duration seekTo = Duration.zero
|
||||
}) async {
|
||||
if (_instance == null) return;
|
||||
// 设置倍速
|
||||
@@ -636,7 +635,7 @@ class PlPlayerController {
|
||||
|
||||
// 自动播放
|
||||
if (_autoPlay) {
|
||||
await playIfExists(duration: duration);
|
||||
await playIfExists();
|
||||
// await play(duration: duration);
|
||||
}
|
||||
}
|
||||
@@ -831,20 +830,16 @@ class PlPlayerController {
|
||||
/// 播放视频
|
||||
/// TODO _duration.value丢失
|
||||
Future<void> play(
|
||||
{bool repeat = false, bool hideControls = true, dynamic duration}) async {
|
||||
{bool repeat = false, bool hideControls = true}) async {
|
||||
if (_playerCount.value == 0) return;
|
||||
// 播放时自动隐藏控制条
|
||||
controls = !hideControls;
|
||||
// repeat为true,将从头播放
|
||||
if (repeat) {
|
||||
await seekTo(Duration.zero);
|
||||
// await seekTo(Duration.zero);
|
||||
await seekTo(Duration.zero, type: "slider");
|
||||
}
|
||||
|
||||
/// 临时fix _duration.value丢失
|
||||
if (duration != null) {
|
||||
_duration.value = duration;
|
||||
updateDurationSecond();
|
||||
}
|
||||
await _videoPlayerController?.play();
|
||||
|
||||
await getCurrentVolume();
|
||||
|
||||
Reference in New Issue
Block a user