Flutter just_audio在Windows播放本地音频遇sourceNotSupported错误
解决just_audio Windows端加载本地音频文件出现'sourceNotSupported'的问题
可能的原因与对应解决方案
1. 文件路径格式错误
Windows系统对本地路径的解析有特殊要求,直接用File(path)生成的路径字符串可能无法被just_audio正确识别。建议将本地路径转换为file URI格式后再传入:
final fileUri = Uri.file(localFilePath).toString(); await audioPlayer.setAudioSource(AudioSource.uri(Uri.parse(fileUri)));
Uri.file会自动处理Windows路径的反斜杠转义问题,避免解析异常。
2. 权限配置遗漏
即便文件本身有读写权限,Windows桌面应用仍需在配置中声明对应权限才能访问本地存储:
- 在
pubspec.yaml的windows配置段添加权限声明:
windows: permissions: - musicLibrary - privateNetworkClientServer
- 若仍无效,可检查
Runner/Runner.rc文件,确认是否添加了Windows 10+所需的文件访问权限节点。
3. 音频编码兼容性问题
just_audio_windows依赖的底层播放器对部分小众编码格式(如DSD、某些特殊参数的FLAC)支持有限。先尝试用Windows自带的媒体播放器测试目标音频文件,确认文件本身是否能正常播放,排除编码格式不兼容的情况。
4. 依赖版本bug
旧版本的just_audio_windows可能存在本地文件加载的已知问题,建议升级到最新稳定版:
just_audio_windows: ^0.2.0 # 替换为当前最新版本号
执行flutter pub get更新后重新测试。
5. 路径含特殊字符
如果文件路径包含中文、空格或特殊符号,可能导致路径解析失败。先将文件移至路径简单的目录(如C:\temp\test.mp3)测试,确认是否是路径字符的问题。
内容的提问来源于stack exchange,提问作者user20265604
相关产品推荐
相关产品推荐

