fix: 将自动全屏逻辑调整到播放页,避免未开自动播放时无效果

This commit is contained in:
orz12
2024-03-02 15:14:37 +08:00
parent 0d46ebb7a3
commit 77e495ed02
4 changed files with 22 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:floating/floating.dart'; import 'package:floating/floating.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -34,8 +35,17 @@ class _LiveRoomPageState extends State<LiveRoomPage> {
} }
videoSourceInit(); videoSourceInit();
_futureBuilderFuture = _liveRoomController.queryLiveInfo(); _futureBuilderFuture = _liveRoomController.queryLiveInfo();
autoEnterFullscreen();
} }
void autoEnterFullscreen() async {
bool autoEnterFullscreen =
GStrorage.setting.get(SettingBoxKey.enableAutoEnter, defaultValue: false);
if (autoEnterFullscreen) {
await Future.delayed(const Duration(milliseconds: 100));
plPlayerController!.triggerFullScreen(status: true);
}
}
Future<void> videoSourceInit() async { Future<void> videoSourceInit() async {
_futureBuilder = _liveRoomController.queryLiveInfoH5(); _futureBuilder = _liveRoomController.queryLiveInfoH5();
plPlayerController = _liveRoomController.plPlayerController; plPlayerController = _liveRoomController.plPlayerController;

View File

@@ -239,7 +239,6 @@ class VideoDetailController extends GetxController
bvid: bvid, bvid: bvid,
cid: cid.value, cid: cid.value,
enableHeart: enableHeart, enableHeart: enableHeart,
isFirstTime: isFirstTime,
autoplay: autoplay, autoplay: autoplay,
); );

View File

@@ -102,6 +102,16 @@ class _VideoDetailPageState extends State<VideoDetailPage>
plPlayerController = videoDetailController.plPlayerController; plPlayerController = videoDetailController.plPlayerController;
plPlayerController!.addStatusLister(playerListener); plPlayerController!.addStatusLister(playerListener);
listenFullScreenStatus(); listenFullScreenStatus();
autoEnterFullscreen();
}
}
void autoEnterFullscreen() async {
bool autoEnterFullscreen =
setting.get(SettingBoxKey.enableAutoEnter, defaultValue: false);
if (autoEnterFullscreen && videoDetailController.isFirstTime) {
await Future.delayed(const Duration(milliseconds: 100));
plPlayerController!.triggerFullScreen(status: true);
} }
} }
@@ -158,6 +168,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
plPlayerController = videoDetailController.plPlayerController; plPlayerController = videoDetailController.plPlayerController;
plPlayerController!.addStatusLister(playerListener); plPlayerController!.addStatusLister(playerListener);
listenFullScreenStatus(); listenFullScreenStatus();
autoEnterFullscreen();
videoDetailController.autoPlay.value = true; videoDetailController.autoPlay.value = true;
videoDetailController.isShowCover.value = false; videoDetailController.isShowCover.value = false;
} }
@@ -195,7 +206,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
}); });
if (!status) { if (!status) {
showStatusBar(); showStatusBar();
if (setting.get(SettingBoxKey.horizontalScreen, defaultValue: false)) { if (horizontalScreen) {
autoScreen(); autoScreen();
} else { } else {
verticalScreen(); verticalScreen();

View File

@@ -97,7 +97,6 @@ class PlPlayerController {
int _cid = 0; int _cid = 0;
int _heartDuration = 0; int _heartDuration = 0;
bool _enableHeart = true; bool _enableHeart = true;
bool _isFirstTime = true;
final RxList<Map<String, String>> _vttSubtitles = <Map<String, String>>[].obs; final RxList<Map<String, String>> _vttSubtitles = <Map<String, String>>[].obs;
final RxInt _vttSubtitlesIndex = 0.obs; final RxInt _vttSubtitlesIndex = 0.obs;
@@ -350,8 +349,6 @@ class PlPlayerController {
int cid = 0, int cid = 0,
// 历史记录开关 // 历史记录开关
bool enableHeart = true, bool enableHeart = true,
// 是否首次加载
bool isFirstTime = true,
}) async { }) async {
try { try {
_autoPlay = autoplay; _autoPlay = autoplay;
@@ -365,7 +362,6 @@ class PlPlayerController {
_bvid = bvid; _bvid = bvid;
_cid = cid; _cid = cid;
_enableHeart = enableHeart; _enableHeart = enableHeart;
_isFirstTime = isFirstTime;
if (_videoPlayerController != null && if (_videoPlayerController != null &&
_videoPlayerController!.state.playing) { _videoPlayerController!.state.playing) {
@@ -408,12 +404,6 @@ class PlPlayerController {
} }
}); });
} }
bool autoEnterFullcreen =
setting.get(SettingBoxKey.enableAutoEnter, defaultValue: false);
if (autoEnterFullcreen && _isFirstTime) {
await Future.delayed(const Duration(milliseconds: 100));
triggerFullScreen(status: true);
}
} catch (err) { } catch (err) {
dataStatus.status.value = DataStatus.error; dataStatus.status.value = DataStatus.error;
print('plPlayer err: $err'); print('plPlayer err: $err');