当覆盖视频出现在其他应用程序的屏幕上时,Flutter Video Player 会自动暂停
Flutter Video Player Automatically Pauses when overlay video appears on screen of other application
我的应用程序屏幕中有一个循环播放的背景。当我们更改屏幕和更改应用程序状态时(pause/resume),视频工作正常,但存在一个大问题。当我在 Netflix 等其他应用程序中播放视频并关闭 Netflix 应用程序并打开我的应用程序时。弹出视频出现在 phone 屏幕上,当视频在弹出窗口中播放时,我的应用程序中的视频会自动播放。我将向您展示一个实际发生的例子。请打开这个 link 我也添加了我的应用程序的屏幕录制。您可以了解实际发生的情况。
Screen Recording of the application
这是我用于我的视频播放器的代码
late VideoPlayerController _controller;
处于小部件的初始状态
videoPlayerBloc = context.read<VideoPlayerBloc>();
_controller = VideoPlayerController.asset('assets/videos/intro.mp4')
..initialize().then((_) {
videoPlayerBloc.add(PlayVideo());
_controller.play();
_controller.setLooping(true);
setState(() {});
});
WidgetsBinding.instance!.addObserver(
LifecycleEventHandler(resumeCallBack: () async =>
videoPlayerBloc.add(PlayVideo()), suspendingCallBack: () async {
})
);
在Widget的build方法中
BlocListener<VideoPlayerBloc, VideoPlayerState>(
listener: (context, state) {
_controller = VideoPlayerController.asset('assets/videos/intro.mp4')
..initialize().then((_) {
_controller.play();
_controller.setLooping(true);
setState(() {});
});
},
child: SizedBox.expand(
child: FittedBox(
fit: BoxFit.cover,
child: SizedBox(
width: _controller.value.size.width,
height: _controller.value.size.height,
child: Opacity(
opacity: 0.75,
child: VideoPlayer(_controller)),
),
),
)
)
如有任何帮助,我们将不胜感激。这是我第一次遇到堆栈溢出。希望能得到观众的积极响应。
mixWithOthers 属性 为 true 以继续播放您的视频:)
这些选项是 VideoPlayerController 构造函数的一部分
VideoPlayerController(videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true),);
我的应用程序屏幕中有一个循环播放的背景。当我们更改屏幕和更改应用程序状态时(pause/resume),视频工作正常,但存在一个大问题。当我在 Netflix 等其他应用程序中播放视频并关闭 Netflix 应用程序并打开我的应用程序时。弹出视频出现在 phone 屏幕上,当视频在弹出窗口中播放时,我的应用程序中的视频会自动播放。我将向您展示一个实际发生的例子。请打开这个 link 我也添加了我的应用程序的屏幕录制。您可以了解实际发生的情况。
Screen Recording of the application
这是我用于我的视频播放器的代码
late VideoPlayerController _controller;
处于小部件的初始状态
videoPlayerBloc = context.read<VideoPlayerBloc>();
_controller = VideoPlayerController.asset('assets/videos/intro.mp4')
..initialize().then((_) {
videoPlayerBloc.add(PlayVideo());
_controller.play();
_controller.setLooping(true);
setState(() {});
});
WidgetsBinding.instance!.addObserver(
LifecycleEventHandler(resumeCallBack: () async =>
videoPlayerBloc.add(PlayVideo()), suspendingCallBack: () async {
})
);
在Widget的build方法中
BlocListener<VideoPlayerBloc, VideoPlayerState>(
listener: (context, state) {
_controller = VideoPlayerController.asset('assets/videos/intro.mp4')
..initialize().then((_) {
_controller.play();
_controller.setLooping(true);
setState(() {});
});
},
child: SizedBox.expand(
child: FittedBox(
fit: BoxFit.cover,
child: SizedBox(
width: _controller.value.size.width,
height: _controller.value.size.height,
child: Opacity(
opacity: 0.75,
child: VideoPlayer(_controller)),
),
),
)
)
如有任何帮助,我们将不胜感激。这是我第一次遇到堆栈溢出。希望能得到观众的积极响应。
mixWithOthers 属性 为 true 以继续播放您的视频:)
这些选项是 VideoPlayerController 构造函数的一部分
VideoPlayerController(videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true),);