flutter-web - Flutter 视频播放器网页在处理后仍然播放音频
问题描述
我使用 Fluttervideo_player
包在原生平台(android、ios)和 web 上播放视频文件。在网络上,我遇到了一种情况,即使在视频暂停或视频控制器已被处置后,视频播放器仍继续播放音频。在 Chrome 和 Firefox 上也是如此。有谁知道如何解决它?
class VideoAsset extends StatefulWidget {
final Uri url;
final bool autoPlay;
const VideoAsset({Key? key, required this.url, this.autoPlay = false}) : super(key: key);
@override
_VideoAssetState createState() => _VideoAssetState();
}
class _VideoAssetState extends State<VideoAsset> {
late VideoPlayerController videoPlayerController;
@override
void initState() {
videoPlayerController = VideoPlayerController.network(widget.url.toString());
super.initState();
}
@override
void dispose() {
videoPlayerController.pause();
videoPlayerController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: videoPlayerController.initialize(),
builder: (context, _) {
final chewieController = ChewieController(
videoPlayerController: videoPlayerController,
autoPlay: autoPlay,
looping: false,
allowFullScreen: false,
aspectRatio: 16 / 9,
placeholder: Container(),
);
return AspectRatio(
aspectRatio: 16 / 9,
child: Chewie(controller: chewieController),
);
},
);
}
}
解决方案
推荐阅读
- android - Firebase API初始化失败Android+Firebase
- html - 之前使用 CSS 水平扩展元素的边框顶部
- excel-formula - 使用源表中的 3 个匹配条件从源表中填充第二个表
- java - 在 Java 中实例化大量子类的最有效方法是什么?
- c# - 如何在 Asp.Net MVC 中使用实体框架和 Web Api 获取外键表数据
- kernel - 什么是 Solarflare Onload 堆栈以及它与它们的虚拟接口有何关系
- android - 不确定如何将 Cursor 转换为此方法的返回类型
- linux - rabbitmq 集群不匹配主机名问题
- python - 如何在 VS Code 中使用 unittest.TestSuite?
- php - 当插入的值与表中的列数不匹配时,使用 PHP 将数据插入到 MySQL 表中