You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter使用video_player插件无法显示视频,相关报错如何解决?

问题解决方案

你遇到的问题分为编译错误、运行错误两类,按以下步骤操作可全部解决:

1 修复4项编译错误(类型未定义、目标URI不存在)

  • 修正pubspec.yaml配置:首先删除name字段前的多余空格,给video_player指定适配空安全的版本号,确保所有依赖项缩进正确,修正后的依赖部分代码如下:
dependencies:
  flutter:
    sdk: flutter
  dio: ^4.0.0
  file_picker: ^4.0.0
  video_player: ^2.4.5
  advance_pdf_viewer: ^2.0.0
  cupertino_icons: ^1.0.2
  http: ^0.13.0
  • 安装依赖:在项目根目录终端执行命令 flutter pub get
  • 重启IDE:清除IDE缓存的导入识别错误,重启后4项编译错误会自动消失
  • 适配空安全语法:你的项目SDK版本开启了空安全,调整代码中控制器的声明和使用逻辑:
// 控制器声明改为可空类型
VideoPlayerController? _controller;

// build方法中的初始化判断改为
child: _controller != null && _controller!.value.isInitialized
    ? AspectRatio(
        aspectRatio: _controller!.value.aspectRatio,
        child: VideoPlayer(_controller!),
      )
    : const CircularProgressIndicator(),

2 修复运行时崩溃、视频无法加载问题

  • 不要直接传入YouTube链接:video_player仅支持mp4、m3u8等直链视频资源,YouTube链接为网页地址,无法直接解析播放,如需播放YouTube内容请使用专门的YouTube播放插件。
  • 添加安卓网络权限:打开android/app/src/main/AndroidManifest.xml,在manifest标签下添加网络访问权限:
<uses-permission android:name="android.permission.INTERNET"/>
  • 解决模拟器兼容问题:你当前使用的x86架构安卓模拟器存在硬件解码兼容问题,优先使用真机测试可直接规避该问题;如果需要继续使用模拟器,可更换x86_64架构的模拟器,或在初始化控制器时添加兼容配置:
_controller = VideoPlayerController.network(
    'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
    videoPlayerOptions: VideoPlayerOptions(
      androidApplySurfaceTransforms: true,
    ),
)..initialize().then((_) {
    setState(() {});
});
  • 清理缓存重新运行:执行命令 flutter clean 后重新启动项目,即可解决Lost connection to device的崩溃问题。

内容的提问来源于stack exchange,提问作者WJLee9559

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:15:03