Flutter项目使用Chewie播放本地MP4视频出现播放及源错误如何解决
修复Flutter Chewie播放本地视频报错方案
- 第一步:检查pubspec.yaml资源配置
确保assets/numbervideo.mp4路径已经在pubspec.yaml中正确声明,缩进必须符合yaml规范,示例配置如下:flutter: assets: - assets/numbervideo.mp4 - 第二步:补充视频控制器异步初始化逻辑
你当前的代码未等待VideoPlayerController初始化完成就直接传递给Chewie,是触发播放源错误的核心原因,修改initState逻辑如下:@override void initState() { super.initState(); _videoPlayerController1 = VideoPlayerController.asset('assets/numbervideo.mp4'); _initializePlayer(); } Future<void> _initializePlayer() async { // 等待视频资源加载完成 await _videoPlayerController1.initialize(); // 初始化完成后再创建Chewie控制器 setState(() { _chewieController = ChewieController( videoPlayerController: _videoPlayerController1, aspectRatio: 3 / 2, autoPlay: true, looping: true, ); }); } - 第三步:构建页面添加加载状态判断
避免控制器未初始化完成就渲染播放组件,修改build层逻辑:@override Widget build(BuildContext context) { return Scaffold( body: Center( child: _chewieController != null && _chewieController.videoPlayerController.value.isInitialized ? Chewie(controller: _chewieController) : const CircularProgressIndicator(), ), ); } - 其他排查项
- 替换其他正常的MP4文件测试,排除本地视频文件损坏的可能
- 升级
video_player、chewie依赖到最新稳定版,规避版本兼容问题 - 安卓端检查混淆配置,确认没有过滤掉视频播放相关的核心类
内容的提问来源于stack exchange,提问作者sana khalid
相关产品推荐
相关产品推荐

