Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-09 18:11:57 +08:00
parent dbb865d723
commit fab34df973
4 changed files with 30 additions and 27 deletions

View File

@@ -115,9 +115,12 @@ class _LiveRoomPageState extends State<LiveRoomPage>
@override
Future<void> didPopNext() async {
addObserverMobile(this);
plPlayerController
..isLive = true
..danmakuController = _liveRoomController.danmakuController;
if (!plPlayerController.isLive) {
plPlayerController.isLive = true;
_liveRoomController.isLoaded.refresh();
}
plPlayerController.danmakuController =
_liveRoomController.danmakuController;
PlPlayerController.setPlayCallBack(plPlayerController.play);
_liveRoomController.startLiveTimer();
if (plPlayerController.playerStatus.isPlaying &&
@@ -242,9 +245,6 @@ class _LiveRoomPageState extends State<LiveRoomPage>
Alignment alignment = Alignment.center,
bool needDm = true,
}) {
if (!plPlayerController.isLive) {
return const SizedBox.shrink();
}
if (!isFullScreen && !plPlayerController.isDesktopPip) {
_liveRoomController.fsSC.value = null;
}
@@ -252,7 +252,7 @@ class _LiveRoomPageState extends State<LiveRoomPage>
Widget player = Obx(
key: playerKey,
() {
if (_liveRoomController.isLoaded.value) {
if (_liveRoomController.isLoaded.value && plPlayerController.isLive) {
final roomInfoH5 = _liveRoomController.roomInfoH5.value;
return PLVideoPlayer(
maxWidth: width,

View File

@@ -267,7 +267,10 @@ class VideoDetailController extends GetxController
final isVertical = height > width;
if (_scrollCtr?.hasClients != true) {
videoHeight = isVertical ? maxVideoHeight : minVideoHeight;
this.isVertical.value = isVertical;
if (this.isVertical.value != isVertical) {
this.isVertical.value = isVertical;
_needAnimOnDimensionChanged(isVertical);
}
return;
}
if (this.isVertical.value != isVertical) {

View File

@@ -362,7 +362,6 @@ class PlPlayerController with BlockConfigMixin {
late final keyboardControl = Pref.keyboardControl;
late final uiScale = Pref.uiScale;
late final bool autoEnterFullScreen = Pref.autoEnterFullScreen;
late final bool autoExitFullscreen = Pref.autoExitFullscreen;
late final bool autoPlayEnable = Pref.autoPlayEnable;

View File

@@ -1211,7 +1211,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
StreamSubscription<bool>? _danmakuListener;
static const _kOffsetThreshold = 40.0;
static const _kOffsetThreshold = 30.0;
bool _isPositionAllowed(Offset offset) {
if (offset.dx < _kOffsetThreshold ||
offset.dy < _kOffsetThreshold ||
@@ -1241,29 +1241,30 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
}
}
if (_isPositionAllowed(event.localPosition)) {
final controlsUnlock = !plPlayerController.controlsLock.value;
if (PlatformUtils.isMobile) {
_tapGestureRecognizer.addPointer(event);
if (controlsUnlock) {
if (!plPlayerController.isLive) {
_doubleTapGestureRecognizer.addPointer(event);
longPressRecognizer.addPointer(event);
}
_scaleGestureRecognizer.addPointer(event);
}
} else {
if (controlsUnlock) {
if (!plPlayerController.isLive) {
_tapGestureRecognizer.addPointer(event);
}
final controlsUnlock = !plPlayerController.controlsLock.value;
if (PlatformUtils.isMobile) {
_tapGestureRecognizer.addPointer(event);
if (controlsUnlock) {
final flag = _isPositionAllowed(event.localPosition);
if (!plPlayerController.isLive) {
_doubleTapGestureRecognizer.addPointer(event);
if (!plPlayerController.isLive) {
if (flag) {
longPressRecognizer.addPointer(event);
}
}
if (flag) {
_scaleGestureRecognizer.addPointer(event);
}
}
} else if (controlsUnlock) {
if (plPlayerController.isLive) {
_doubleTapGestureRecognizer.addPointer(event);
} else {
_tapGestureRecognizer.addPointer(event);
_doubleTapGestureRecognizer.addPointer(event);
longPressRecognizer.addPointer(event);
}
_scaleGestureRecognizer.addPointer(event);
}
}