Flutter开发简易视频播放器遇PlatformException(VideoError)求助
Flutter视频播放器运行异常排查求助
我正在使用Flutter开发一款简易视频播放器应用,但运行时出现异常。调试代码时显示错误,以下是我的代码及调试信息,恳请协助排查问题:
代码实现
import 'package:flutter/material.dart'; import 'package:video_player/video_player.dart'; void main() => runApp(MyApp()); class MyApp extends StatefulWidget { @override State<MyApp> createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { @override Widget build(BuildContext context) { return MaterialApp( home: Home(), ); } } class Home extends StatefulWidget { const Home({Key? key}) : super(key: key); @override State<StatefulWidget> createState() => _HomeState(); } class _HomeState extends State<Home> { late VideoPlayerController _controller; @override void initState() { _controller = VideoPlayerController.asset("assets/041 Wrap Up_.mp4") ..initialize().then((_) { setState(() {}); }); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Video player app"), ), body: content(), ); } Widget content() { return Container( width: 350, height: 350, child: _controller.value.isInitialized ? VideoPlayer(_controller) : Container(), ); } }
调试错误信息
E/flutter (22092): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, null, null)
E/flutter (22092)

可能的问题及解决方法
资源路径配置问题:
- 确认
assets/041 Wrap Up_.mp4文件确实存在于项目assets目录下,注意文件名的大小写、空格和下划线必须完全匹配,Flutter对资源路径大小写敏感(iOS平台尤为严格)。 - 检查
pubspec.yaml是否正确配置资源:
在flutter节点下添加:
配置完成后执行assets: - assets/041 Wrap Up_.mp4flutter pub get刷新资源。
- 确认
视频格式兼容性问题:
Android端底层使用的ExoPlayer不支持部分编码格式的视频,建议替换为标准H.264编码的MP4文件测试。添加初始化错误捕获:
当前代码未处理初始化异常,添加捕获逻辑可帮助定位具体问题:@override void initState() { super.initState(); _controller = VideoPlayerController.asset("assets/041 Wrap Up_.mp4") ..initialize().then((_) { setState(() {}); }).catchError((error) { print("视频初始化失败: $error"); }); }视频文件损坏:
尝试重新获取视频文件,确认文件本身未损坏。
内容的提问来源于stack exchange,提问作者M.Shahzad
相关产品推荐
相关产品推荐

