* opt: dataStatus

* tweaks

* opt: ui

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2026-02-06 14:25:45 +08:00
committed by GitHub
parent 32386bf146
commit 7ab2cf973f
12 changed files with 85 additions and 73 deletions

View File

@@ -76,7 +76,7 @@ class PlPlayerController {
final playerStatus = PlPlayerStatus(PlayerStatus.playing);
///
final PlPlayerDataStatus dataStatus = PlPlayerDataStatus();
final Rx<DataStatus> dataStatus = Rx(DataStatus.none);
// bool controlsEnabled = false;
@@ -635,7 +635,7 @@ class PlPlayerController {
// 初始化视频倍速
// _playbackSpeed.value = speed;
// 初始化数据加载状态
dataStatus.status.value = DataStatus.loading;
dataStatus.value = DataStatus.loading;
// 初始化全屏方向
_isVertical = isVertical ?? false;
_aid = aid;
@@ -673,14 +673,14 @@ class PlPlayerController {
updateSliderPositionSecond();
updateBufferedSecond();
// 数据加载完成
dataStatus.status.value = DataStatus.loaded;
dataStatus.value = DataStatus.loaded;
// listen the video player events
startListeners();
await _initializePlayer();
onInit?.call();
} catch (err, stackTrace) {
dataStatus.status.value = DataStatus.error;
dataStatus.value = DataStatus.error;
if (kDebugMode) {
debugPrint(stackTrace.toString());
debugPrint('plPlayer err: $err');
@@ -984,9 +984,9 @@ class PlPlayerController {
Future<void>? autoEnterFullscreen() {
if (enableAutoEnter) {
return Future.delayed(const Duration(milliseconds: 500), () {
if (dataStatus.status.value != DataStatus.loaded) {
if (!dataStatus.loaded) {
_stopListenerForEnterFullScreen();
_dataListenerForEnterFullScreen = dataStatus.status.listen((status) {
_dataListenerForEnterFullScreen = dataStatus.listen((status) {
if (status == DataStatus.loaded) {
_stopListenerForEnterFullScreen();
triggerFullScreen(status: true);
@@ -1386,7 +1386,7 @@ class PlPlayerController {
if (buffered.value == Duration.zero) {
attr = VideoFitType.contain;
_stopListenerForVideoFit();
_dataListenerForVideoFit = dataStatus.status.listen((status) {
_dataListenerForVideoFit = dataStatus.listen((status) {
if (status == DataStatus.loaded) {
_stopListenerForVideoFit();
final attr = VideoFitType.values[fitValue];
@@ -1731,7 +1731,7 @@ class PlPlayerController {
// _controlsLock.close();
// playerStatus.close();
// dataStatus.status.close();
// dataStatus.close();
if (PlatformUtils.isDesktop && isAlwaysOnTop.value) {
windowManager.setAlwaysOnTop(false);