题
您知道有哪个 .NET 库可以解码多种类型的音频文件吗?理想情况下,它应该与平台无关,因此可以在 Windows 和 *NIX 上与 .NET 和 Mono 一起使用。
我已经在谷歌上搜索了一个满足我需求的库,但不幸的是我找不到任何东西。所以在为GStreamer和朋友写很多包装类之前,我想我可以在这里问一下。:)
支持的音频文件应该(至少)
- MP3、
- OGG 沃比斯,和
- FLAC(可选)。
由于我需要这个的应用程序只是为了好玩,所以该库应该是开源的 - 或者至少是免费的。此外,向用户显示的导航屏幕可能会很糟糕或不切实际,因为我计划将其放入服务流程中。
我需要使用这个库/这些库来解码音频文件并将 byte[] 传递给我的 libOFA 包装器,以便我可以为其生成 MusicDNS 指纹。我的实验应用程序很可能在基于 Linux 的服务器上运行。
解决方案
有的是 ffmpeg 转换音频和视频格式的库和实用程序。然后,与 FFmpeg.NET 库,您可以在.NET 中进行编码/解码。支持您提到的所有格式。
其他提示
这 FMOD 防爆 声音系统是一款革命性的新型音频引擎,适用于游戏开发人员、多媒体开发人员、声音设计师、音乐家和音频工程师。基于 Firelight Technologies 之前产品的多年经验,FMOD Ex 旨在推动游戏音频的功能,同时使用最少的资源并保持完全可扩展性。
FMOD 非商业许可证
如果您的产品不以商业利益为目的,并且不包含用于转售、许可或其他商业分发的 FMOD 库,则 FMOD 的使用是免费的。是的,没错,免许可费!
如果您正在谈论解码文件以播放它们(即用于收听),我建议跳入 Windows Media Player SDK。
它可以播放安装了编解码器的任何内容,并且不需要任何费用。
http://msdn.microsoft.com/en-us/library/aa969732.aspx
如果你想要更接近金属的东西(即用于学习),您还可以查看 Windows Media Format SDK。
Alvas.Audio 是我见过的唯一具有此功能的产品(我只是从这篇文章中了解到它)。我认为 MP3 的许可情况阻碍了 .NET 产品的开发。