diff --git a/lib/pages/danmaku/view.dart b/lib/pages/danmaku/view.dart index 3ddde9e04..2068079bb 100644 --- a/lib/pages/danmaku/view.dart +++ b/lib/pages/danmaku/view.dart @@ -18,6 +18,7 @@ class PlDanmaku extends StatefulWidget { final bool isPipMode; final bool isFullScreen; final bool isFileSource; + final Size size; const PlDanmaku({ super.key, @@ -26,6 +27,7 @@ class PlDanmaku extends StatefulWidget { this.isPipMode = false, required this.isFullScreen, required this.isFileSource, + required this.size, }); @override @@ -157,6 +159,7 @@ class _PlDanmakuState extends State { ..removePositionListener(videoPositionListen) ..removeStatusLister(playerListener); _plDanmakuController.dispose(); + _controller = null; super.dispose(); } @@ -176,6 +179,7 @@ class _PlDanmakuState extends State { notFullscreen: widget.notFullscreen, speed: playerController.playbackSpeed, ), + size: widget.size, ), ), ); diff --git a/lib/pages/live_room/controller.dart b/lib/pages/live_room/controller.dart index f2ba1353f..adb14683e 100644 --- a/lib/pages/live_room/controller.dart +++ b/lib/pages/live_room/controller.dart @@ -392,6 +392,7 @@ class LiveRoomController extends GetxController { ..removeListener(listener) ..dispose(); pageController?.dispose(); + danmakuController = null; super.onClose(); } diff --git a/lib/pages/live_room/view.dart b/lib/pages/live_room/view.dart index 5a63b4bb4..622879fc5 100644 --- a/lib/pages/live_room/view.dart +++ b/lib/pages/live_room/view.dart @@ -267,6 +267,7 @@ class _LiveRoomPageState extends State plPlayerController: plPlayerController, isFullScreen: isFullScreen, isPipMode: plPlayerController.isDesktopPip || isPipMode, + size: Size(width, height), ), ); } @@ -988,6 +989,7 @@ class LiveDanmaku extends StatefulWidget { final PlPlayerController plPlayerController; final bool isPipMode; final bool isFullScreen; + final Size size; const LiveDanmaku({ super.key, @@ -995,6 +997,7 @@ class LiveDanmaku extends StatefulWidget { required this.plPlayerController, this.isPipMode = false, required this.isFullScreen, + required this.size, }); @override @@ -1032,6 +1035,7 @@ class _LiveDanmakuState extends State { plPlayerController.danmakuController = e; }, option: DanmakuOptions.get(notFullscreen: widget.notFullscreen), + size: widget.size, ), ); }, diff --git a/lib/pages/video/view.dart b/lib/pages/video/view.dart index 0edd0c1f7..3ec9497a4 100644 --- a/lib/pages/video/view.dart +++ b/lib/pages/video/view.dart @@ -1370,6 +1370,7 @@ class _VideoDetailPageVState extends State playerController: plPlayerController!, isFullScreen: plPlayerController!.isFullScreen.value, isFileSource: videoDetailController.isFileSource, + size: Size(width, height), ), ), showEpisodes: showEpisodes, diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index c2f71ea59..ddfdc66cc 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1692,6 +1692,7 @@ class PlPlayerController { } _playerCount = 0; + danmakuController = null; _stopListenerForVideoFit(); _stopListenerForEnterFullScreen(); disableAutoEnterPip(); diff --git a/pubspec.lock b/pubspec.lock index 4fd673968..259e87bad 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -239,7 +239,7 @@ packages: description: path: "." ref: main - resolved-ref: "2a0f79712bd9d8856271e657859b36f060e55ef6" + resolved-ref: "16ee8cec19a324653f0a3b54897134c5e77ae613" url: "https://github.com/bggRGjQaUbCoE/canvas_danmaku.git" source: git version: "0.2.6" @@ -793,7 +793,7 @@ packages: description: path: "." ref: "version_4.7.2" - resolved-ref: "58572238672734ba9351631a4fc81aed5dba3b16" + resolved-ref: "4f5c47f38bde5df0abd6481702b2d8ec199a0e49" url: "https://github.com/bggRGjQaUbCoE/getx.git" source: git version: "4.7.2"