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,提问作者قصي زهير
相关产品推荐
相关产品推荐

