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

Flutter加载本地视频遇MEDIA_ERR_SRC_NOT_SUPPORTED格式错误求助

解决Flutter Chewie加载本地视频出现MEDIA_ERR_SRC_NOT_SUPPORTED错误

以下是针对性的解决步骤:

1. 确认视频编码兼容性

MP4是容器格式,底层编码才是兼容关键。Flutter的video_player依赖平台原生播放器:

  • Android依赖ExoPlayer,推荐编码:视频H.264(AVC)、音频AAC
  • iOS依赖AVPlayer,支持编码与Android基本一致,但旧设备对H.265兼容性较差

可以用MediaInfo工具查看视频编码信息,若编码不兼容,用FFmpeg等工具转成H.264+AAC的标准MP4格式。

2. 检查pubspec.yaml资源配置

确保已正确声明视频资源路径,路径大小写严格匹配:

flutter:
  assets:
    - assets/images/IBT.mp4

修改后执行flutter pub get刷新资源。

3. 修复视频控制器初始化逻辑

当前代码未等待VideoPlayerController初始化完成就创建ChewieController,易导致加载失败。调整初始化逻辑:

class _ChewiePlayerWidgetState extends State<ChewiePlayerWidget> {
  late VideoPlayerController _controller;
  ChewieController? _chewieController;

  @override
  void initState() {
    super.initState();
    _initVideoPlayer();
  }

  Future<void> _initVideoPlayer() async {
    _controller = VideoPlayerController.asset('assets/images/IBT.mp4');
    await _controller.initialize(); // 等待控制器初始化完成
    setState(() {
      _chewieController = ChewieController(
        videoPlayerController: _controller,
        autoPlay: true,
        looping: true,
        aspectRatio: _controller.value.aspectRatio, // 使用视频原生比例
        placeholder: Container(color: Colors.grey),
        errorBuilder: (context, errorMessage) {
          return Center(
            child: Text(errorMessage, style: TextStyle(color: Colors.white)),
          );
        },
      );
    });
  }

  @override
  void dispose() {
    _controller.dispose();
    _chewieController?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return _chewieController != null 
        ? Chewie(controller: _chewieController!)
        : Container(color: Colors.grey); // 初始化完成前显示占位
  }
}

4. 排查平台特定问题

  • Android:确保项目minSdkVersion不低于21(ExoPlayer对低版本系统支持有限)
  • iOS:无需额外配置Info.plist,但需保证视频编码符合AVPlayer要求

5. 测试基准视频

用已知兼容的H.264编码MP4测试视频替换当前文件,验证是否为视频本身的格式问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:28:09