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

Flutter中assets_audio_player失效,报PlatformException问题求助

解决assets_audio_player库的PlatformException及AudioWidget失效问题

核心排查与修复方案

1. 校验资源配置与路径

  • 确认pubspec.yaml的assets配置无拼写错误,路径需覆盖目标音频文件,示例:
    assets:
      - assets/audio/
      - assets/audio/alert.mp3
    
  • 检查音频文件实际路径、文件名(含大小写)与配置完全匹配——iOS平台对路径大小写敏感,容易引发加载失败。

2. 适配3.0.6版本API变更

3.0.6版本后AudioWidget.assets()已被废弃,需替换为当前版本的标准调用方式:

  • 旧版调用(3.0.6前):
    AudioWidget.assets(
      path: "assets/audio/alert.mp3",
      player: assetsAudioPlayer,
    )
    
  • 新版适配代码:
    AudioPlayer.builder(
      player: assetsAudioPlayer,
      builder: (context, player, child) {
        return IconButton(
          icon: const Icon(Icons.play_arrow),
          onPressed: () => player.play(const AssetSource("audio/alert.mp3")),
        );
      },
    )
    

3. 清理平台端缓存

  • Android:删除应用缓存或直接卸载重装,避免旧资源残留冲突。
  • iOS:在Xcode中执行Command+Shift+K清理缓存,重新构建项目确保资源正确打包。

4. 捕获详细错误日志

在播放逻辑中添加异常捕获,打印完整错误信息定位问题:

try {
  await assetsAudioPlayer.open(
    const Audio("assets/audio/alert.mp3"),
  );
} catch (e, stackTrace) {
  print("播放错误详情: $e");
  print("堆栈跟踪: $stackTrace");
}

5. 调整库版本

若3.0.6版本存在兼容性bug,可:

  • 降级至之前稳定版本(如3.0.5),在pubspec.yaml中指定:
    assets_audio_player: ^3.0.5
    
  • 升级至最新稳定版,查看官方更新日志确认是否已修复该问题。

内容的提问来源于stack exchange,提问作者قصي زهير

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:55:27