Merge branch 'fix'

This commit is contained in:
guozhigq
2024-06-01 12:55:59 +08:00
2 changed files with 23 additions and 7 deletions

View File

@ -99,7 +99,6 @@ class _VideoDetailPageState extends State<VideoDetailPage>
fullScreenStatusListener(); fullScreenStatusListener();
if (Platform.isAndroid) { if (Platform.isAndroid) {
floating = vdCtr.floating!; floating = vdCtr.floating!;
autoEnterPip();
} }
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addObserver(this);
lifecycleListener(); lifecycleListener();
@ -128,8 +127,9 @@ class _VideoDetailPageState extends State<VideoDetailPage>
} }
// 播放器状态监听 // 播放器状态监听
void playerListener(PlayerStatus? status) async { void playerListener(PlayerStatus status) async {
playerStatus.value = status!; playerStatus.value = status;
autoEnterPip(status: status);
if (status == PlayerStatus.completed) { if (status == PlayerStatus.completed) {
// 结束播放退出全屏 // 结束播放退出全屏
if (autoExitFullcreen) { if (autoExitFullcreen) {
@ -181,6 +181,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
plPlayerController!.addStatusLister(playerListener); plPlayerController!.addStatusLister(playerListener);
vdCtr.autoPlay.value = true; vdCtr.autoPlay.value = true;
vdCtr.isShowCover.value = false; vdCtr.isShowCover.value = false;
autoEnterPip(status: PlayerStatus.playing);
} }
void fullScreenStatusListener() { void fullScreenStatusListener() {
@ -287,10 +288,12 @@ class _VideoDetailPageState extends State<VideoDetailPage>
.subscribe(this, ModalRoute.of(context)! as PageRoute); .subscribe(this, ModalRoute.of(context)! as PageRoute);
} }
void autoEnterPip() { void autoEnterPip({PlayerStatus? status}) {
final String routePath = Get.currentRoute; final String routePath = Get.currentRoute;
if (autoPiP && routePath.startsWith('/video')) { if (autoPiP && routePath.startsWith('/video')) {
floating.toggleAutoPip(autoEnter: autoPiP); floating.toggleAutoPip(
autoEnter: autoPiP && status == PlayerStatus.playing,
);
} }
} }
@ -314,6 +317,15 @@ class _VideoDetailPageState extends State<VideoDetailPage>
case 'show' || 'restart': case 'show' || 'restart':
plPlayerController?.danmakuController?.clear(); plPlayerController?.danmakuController?.clear();
break; break;
case 'pause':
vdCtr.hiddenReplyReplyPanel();
if (vdCtr.videoType == SearchType.video) {
videoIntroController.hiddenEpisodeBottomSheet();
}
if (vdCtr.videoType == SearchType.media_bangumi) {
bangumiIntroController.hiddenEpisodeBottomSheet();
}
break;
} }
} }

View File

@ -733,14 +733,18 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
const double threshold = 7.0; // 滑动阈值 const double threshold = 7.0; // 滑动阈值
final bool flag = final bool flag =
fullScreenGestureMode != FullScreenGestureMode.values.last; fullScreenGestureMode != FullScreenGestureMode.values.last;
if (dy > _distance.value && dy > threshold) { if (dy > _distance.value &&
dy > threshold &&
!_.controlsLock.value) {
if (_.isFullScreen.value ^ flag) { if (_.isFullScreen.value ^ flag) {
lastFullScreenToggleTime = DateTime.now(); lastFullScreenToggleTime = DateTime.now();
// 下滑退出全屏 // 下滑退出全屏
await widget.controller.triggerFullScreen(status: flag); await widget.controller.triggerFullScreen(status: flag);
} }
_distance.value = 0.0; _distance.value = 0.0;
} else if (dy < _distance.value && dy < -threshold) { } else if (dy < _distance.value &&
dy < -threshold &&
!_.controlsLock.value) {
if (!_.isFullScreen.value ^ flag) { if (!_.isFullScreen.value ^ flag) {
lastFullScreenToggleTime = DateTime.now(); lastFullScreenToggleTime = DateTime.now();
// 上滑进入全屏 // 上滑进入全屏