.NET Maui无法访问Resources\Sounds文件夹内文件的问题排查
.NET Maui 访问Resources/Sounds文件夹音频文件的解决方案
问题原因
FileSystem.OpenAppPackageFileAsync不会递归搜索子文件夹,必须传入相对于项目根的完整相对路径,你只写文件名会去应用包的根目录查找,而文件实际在Resources/Sounds下,所以找不到。- 如果音频文件的生成操作未正确配置,打包时文件不会被包含到应用包中,也会触发找不到文件的错误。
解决步骤
1. 修正文件路径
将代码中的路径改为包含子文件夹的完整相对路径(注意用正斜杠/保证跨平台兼容):
var playerStartSound = audioManager.CreatePlayer(await FileSystem.OpenAppPackageFileAsync("Resources/Sounds/record-start.mp3"));
2. 配置文件的生成属性
在Visual Studio中右键点击record-start.mp3文件,打开属性面板:
- 设置生成操作为
MauiAsset - 设置复制到输出目录为
如果较新则复制(或始终复制,确保文件被打包进应用包)
这样配置后,音频文件会被正确打包到应用包的Resources/Sounds路径下,OpenAppPackageFileAsync就能成功找到并读取文件了。
内容的提问来源于stack exchange,提问作者Gratzy
相关产品推荐
相关产品推荐

