提交 95a2950a authored 作者: kongdywang's avatar kongdywang

1. Fix the issue where calling exit Picture-in-Picture (PiP) in Android live…

1. Fix the issue where calling exit Picture-in-Picture (PiP) in Android live streaming is ineffective. 2. In the player component, a new parameter has been added to the release that can determine whether to continue listening to player events after entering Picture-in-Picture mode.
上级 56312ebd
......@@ -452,7 +452,7 @@ class _DemoSuperPlayerState extends State<DemoSuperPlayer> with TXPipPlayerResto
Future<void> _releasePlayerSource() async {
// must invoke when page exit.
await _controller.releasePlayer();
await _controller.releasePlayer(cancelListenerWhenPip: true);
// restore current brightness to sys brightness
SuperPlayerPlugin.restorePageBrightness();
// unregister brightness observer
......
......@@ -359,8 +359,7 @@ class TXLivePlayerController extends ChangeNotifier implements ValueListenable<T
/// 退出画中画,如果该播放器处于画中画模式
@override
Future<void> exitPictureInPictureMode() async {
/// live not support
// await _livePlayerApi.exitPictureInPictureMode(PlayerMsg()..playerId = _playerId);
await _livePlayerApi.exitPictureInPictureMode(PlayerMsg()..playerId = _playerId);
}
/// Release player resource occupation.
......
......@@ -756,12 +756,18 @@ class SuperPlayerController {
/// Release the player. Once the player is released, it cannot be used again
/// 释放播放器,播放器释放之后,将不能再使用
Future<void> releasePlayer() async {
Future<void> releasePlayer({bool? cancelListenerWhenPip}) async {
// If in picture-in-picture mode, the player should not be released temporarily.
if (!TXPipController.instance.isPlayerInPip(getCurrentController())) {
await stopPlay();
await _vodPlayerController.dispose();
await _livePlayerController.dispose();
} else if (null != cancelListenerWhenPip && cancelListenerWhenPip) {
// cancel listener when enter pip
_vodPlayEventListener?.cancel();
_vodNetEventListener?.cancel();
_livePlayEventListener?.cancel();
_liveNetEventListener?.cancel();
}
// Remove the event listener for the widget.
_observer?.onDispose();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论