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

Flutter应用中使用video_player无法播放assets视频问题求助

Flutter video_player播放Assets视频不显示的解决办法

你的代码存在几个关键问题导致视频无法正常加载显示,以下是具体修复方案:

1. 必须完成控制器初始化

VideoPlayerController.asset()仅创建了控制器实例,但未完成视频资源的初始化操作,视频无法加载渲染。你需要调用initialize()方法,并等待初始化完成后再展示VideoPlayer组件。

方案一:用FutureBuilder包裹组件

final controller = VideoPlayerController.asset('assets/camion.mp4');

Positioned(
  top: MediaQuery.of(context).size.height * 0.4,
  left: MediaQuery.of(context).size.width * 0.3,
  child: Container(
    width: 200,
    height: 200,
    child: FutureBuilder(
      future: controller.initialize(),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.done) {
          // 初始化完成,显示视频
          return VideoPlayer(controller);
        } else {
          // 加载中显示占位指示器
          return const Center(child: CircularProgressIndicator());
        }
      },
    ),
  ),
)

方案二:在StatefulWidget的initState中初始化

如果是在有状态组件中,可以提前在初始化生命周期里完成控制器准备:

late VideoPlayerController controller;

@override
void initState() {
  super.initState();
  controller = VideoPlayerController.asset('assets/camion.mp4')
    ..initialize().then((_) {
      setState(() {}); // 触发UI更新
      controller.play(); // 可选:设置自动播放
    });
}

@override
void dispose() {
  controller.dispose(); // 销毁控制器,避免内存泄漏
  super.dispose();
}

// build方法中使用
Positioned(
  top: MediaQuery.of(context).size.height * 0.4,
  left: MediaQuery.of(context).size.width * 0.3,
  child: Container(
    width: 200,
    height: 200,
    child: controller.value.isInitialized
        ? VideoPlayer(controller)
        : const Center(child: CircularProgressIndicator()),
  ),
)

2. 确认pubspec.yaml中正确配置Assets路径

即使视频文件存在于assets文件夹,也必须在pubspec.yaml中声明资源路径,否则Flutter无法识别:

flutter:
  assets:
    - assets/camion.mp4

注意缩进格式,assets:及下方路径需与flutter:保持层级对齐。

3. 可选:用AspectRatio适配视频比例

如果视频出现拉伸变形问题,可以用AspectRatio组件基于控制器的比例适配:

AspectRatio(
  aspectRatio: controller.value.aspectRatio,
  child: VideoPlayer(controller),
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:55:15