diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index e8f46f25c..01eae3e5d 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -56,6 +56,7 @@ import 'package:hive/hive.dart'; import 'package:media_kit/media_kit.dart'; import 'package:media_kit_video/media_kit_video.dart'; import 'package:path/path.dart' as path; +import 'package:wakelock_plus/wakelock_plus.dart'; import 'package:window_manager/window_manager.dart'; class PlPlayerController { @@ -606,14 +607,6 @@ class PlPlayerController { } }); } - - // _playerEventSubs = onPlayerStatusChanged.listen((PlayerStatus status) { - // if (status == PlayerStatus.playing) { - // WakelockPlus.enable(); - // } else { - // WakelockPlus.disable(); - // } - // }); } // 获取实例 传参 @@ -1044,6 +1037,7 @@ class PlPlayerController { void startListeners() { subscriptions = { videoPlayerController!.stream.playing.listen((event) { + WakelockPlus.toggle(enable: event); if (event) { if (_shouldSetPip) { if (_isCurrVideoPage) { @@ -1777,6 +1771,9 @@ class PlPlayerController { // dataStatus.status.close(); await removeListeners(); + if (playerStatus.playing) { + WakelockPlus.disable(); + } _videoPlayerController?.dispose(); _videoPlayerController = null; _videoController = null; diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index aa8838771..426ef23c6 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -72,7 +72,6 @@ import 'package:get/get.dart' hide ContextExtensionss; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:media_kit_video/media_kit_video.dart'; import 'package:screen_brightness_platform_interface/screen_brightness_platform_interface.dart'; -import 'package:wakelock_plus/wakelock_plus.dart'; import 'package:window_manager/window_manager.dart'; class PLVideoPlayer extends StatefulWidget { @@ -149,21 +148,12 @@ class _PLVideoPlayerState extends State StreamSubscription? _controlsListener; bool _pauseDueToPauseUponEnteringBackgroundMode = false; - StreamSubscription? wakeLock; @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); - late final player = plPlayerController.videoController?.player; - if (player != null && player.state.playing) { - WakelockPlus.enable(); - } - wakeLock = player?.stream.playing.listen( - (v) => WakelockPlus.toggle(enable: v), - ); - _controlsListener = plPlayerController.showControls.listen((bool val) { final visible = val && !plPlayerController.controlsLock.value; if (widget.videoDetailController?.headerCtrKey.currentState?.provider @@ -304,10 +294,6 @@ class _PLVideoPlayerState extends State @override void dispose() { WidgetsBinding.instance.removeObserver(this); - wakeLock?.cancel(); - WakelockPlus.enabled.then((i) { - if (i) WakelockPlus.disable(); - }); _danmakuListener?.cancel(); _tapGestureRecognizer.dispose(); _longPressRecognizer?.dispose();