首页 > 解决方案 > 在 Monogame 中使用 Song.FromUri 加载 mp3 时出现 InvalidDataException“无法确定容器类型”

问题描述

我正在编写一个点唱机应用程序,并尝试使用内置的 MediaPlayer 进行播放。尝试使用 Song.FromUri 创建用于播放的歌曲时,我收到 InvalidDataException“无法确定容器类型”

Song s = Song.FromUri(@"D:\Temp.mp3", new Uri(@"D:\Temp.mp3"));

mp3 有 ID3V1 和 ID3V2 标签,并且是 VBR(平均 198kbps),但我尝试了很多其他的没有区别。我消除了文件路径中的空格,并且已经尝试删除文件中的所有标签。我也尝试过使用每个 UriKind 选项。目前我正在 Windows 10 上进行测试,但这也需要在 Linux 上运行。

mp3 将通过 Content Pipeline 工具加载和播放,所以我认为文件本身没有任何问题。

我没主意了。为什么这不起作用?我应该为此使用不同的库吗?

标签: c#mp3monogame

解决方案


我遇到了同样的问题,它似乎不适用于 mp3 文件。一个解决方案是下载 ffmpeg 并将所有文件转换为 ogg 格式,如下所示:

ffmpeg -i input.mp3 -c:a libvorbis -q:a 4 output.ogg

推荐阅读