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

.NET 7.0 MAUI应用中Plugin.Maui.Audio无法播放本地文件

问题解决:.NET MAUI中Plugin.Maui.Audio播放本地下载MP3报错文件未找到

问题根源

你误用了FileSystem.OpenAppPackageFileAsync方法——这个方法专门用于读取打包时嵌入应用安装包内的资源文件,而你要播放的是下载到应用私有数据目录的文件,所以即便路径正确,这个方法也无法定位到文件。

正确实现代码

不要用OpenAppPackageFileAsync,直接通过文件流打开目标MP3文件即可,同时推荐用FileSystem.AppDataDirectory拼接路径,避免硬编码绝对路径导致的兼容性问题:

// 拼接正确的文件路径(替代硬编码的绝对路径)
var filePath = Path.Combine(FileSystem.AppDataDirectory, "1.mp3");

if (File.Exists(filePath))
{
    // 直接打开本地文件流
    using var stream = File.OpenRead(filePath);
    var player = AudioManager.Current.CreatePlayer(stream);
    player.Play();
}

如果需要异步操作,也可以用:

var filePath = Path.Combine(FileSystem.AppDataDirectory, "1.mp3");

if (File.Exists(filePath))
{
    using var stream = await File.OpenAsync(filePath, FileMode.Open);
    var player = AudioManager.Current.CreatePlayer(stream);
    player.Play();
}

补充说明

  • 硬编码/data/user/0/com.companyname.myapp/files/这类绝对路径风险高,一旦应用包名变更或系统目录结构调整,代码就会失效,用FileSystem.AppDataDirectory能自动获取当前应用的私有数据目录,适配不同设备。
  • 你已经通过File.Exists确认文件存在,只要切换到正确的文件流打开方式,就能正常播放MP3。

内容的提问来源于stack exchange,提问作者Tony Hughes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:52:41