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

VS Code中Flutter项目无法加载音频资源(Unable to Load asset)求助

解决Flutter audioplayers "Unable to Load asset" 错误

1. 核对pubspec.yaml资源配置

即便图片资源正常加载,也要严格检查音频资源的声明格式,确保符合Flutter资源规范:

flutter:
  assets:
    - assets/music/music1.mp3
    # 若有多个音频文件,可直接声明整个目录
    # - assets/music/

注意事项:

  • assets: 必须嵌套在flutter:节点下
  • 资源路径前的缩进为两个空格(禁止使用tab)
  • 路径需与实际文件存放位置完全匹配

2. 验证文件路径与命名

  • 确认音频文件确实位于项目根目录的assets/music/文件夹内,文件名music1.mp3的大小写完全一致(Android、iOS平台对文件名大小写敏感)
  • 检查文件扩展名,避免出现.MP3、.m4a这类与代码中声明不符的情况

3. 清理缓存并重建项目

缓存异常可能导致资源加载失败,执行以下操作:

  • 停止当前Flutter项目运行
  • 执行清理命令:
    flutter clean
    
  • 重新获取依赖:
    flutter pub get
    
  • 重新启动项目:
    flutter run
    

4. 优化AudioPlayer使用代码

你的代码仅调用了setSource但未触发播放,且每次点击都会创建新实例,建议优化为:

class _HomeScreenState extends State<HomeScreen> {
  late AudioPlayer _player;

  @override
  void initState() {
    super.initState();
    _player = AudioPlayer();
  }

  @override
  void dispose() {
    _player.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    // 保留原有布局代码
    onTap: () async {
      try {
        await _player.setSource(AssetSource('assets/music/music1.mp3'));
        await _player.play(); // 新增播放触发方法
      } catch (e) {
        print('音频加载错误详情: $e');
      }
    },
    // 保留其余布局代码
  }
}

添加try-catch可捕获更具体的错误信息,便于定位问题。

5. 检查平台专属配置

  • Android:确保android/app/src/main/AndroidManifest.xml中minSdkVersion不低于21(当前audioplayers版本的最低要求)
  • iOS:在ios/Runner/Info.plist中添加音频相关配置,避免潜在权限问题:
    <key>UIBackgroundModes</key>
    <array>
        <string>audio</string>
    </array>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:16:09