c# - 在 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 工具加载和播放,所以我认为文件本身没有任何问题。
我没主意了。为什么这不起作用?我应该为此使用不同的库吗?
解决方案
我遇到了同样的问题,它似乎不适用于 mp3 文件。一个解决方案是下载 ffmpeg 并将所有文件转换为 ogg 格式,如下所示:
ffmpeg -i input.mp3 -c:a libvorbis -q:a 4 output.ogg
推荐阅读
- python - 如何在 tkinter 中清除 mathplotlib 图?
- python - 为每个用户生成唯一的 id(8 位)
- airflow - Apache Airflow - 如何进行地理编码?
- docker - 如何防止 docker 尝试保存我的凭据?
- java - 将具有三个参数的类变量作为参数传递给构造函数
- pythonanywhere - 在 pythonanywhere 中使用 ntplib 时,谁能解释这个错误?
- javascript - 通过 FileReader 读取本地 csv 文件,传递给 d3.csvParse
- html - 悬停离开后CSS没有平滑淡入
- python - 在 python 2.7 中覆盖 SIGTERM isr 在 Windows 7 中不起作用
- c# - 如何在 C# 中创建用于访问对象属性的接口?