fix wakelock

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-11-15 11:50:17 +08:00
parent 861365930d
commit c89d6a5a59
2 changed files with 5 additions and 22 deletions

View File

@@ -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;

View File

@@ -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<PLVideoPlayer>
StreamSubscription? _controlsListener;
bool _pauseDueToPauseUponEnteringBackgroundMode = false;
StreamSubscription<bool>? 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<PLVideoPlayer>
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
wakeLock?.cancel();
WakelockPlus.enabled.then((i) {
if (i) WakelockPlus.disable();
});
_danmakuListener?.cancel();
_tapGestureRecognizer.dispose();
_longPressRecognizer?.dispose();