在 C# 中将 WAV 文件转换为 WMA(反之亦然)的最佳解决方案是什么?实际上,我已经使用 Windows Media Encoder SDK 实现了一次此操作,但至少可以说,必须将 Windows Media Encoder 与我的应用程序一起分发是很麻烦的。Windows Media Format SDK 的大部分 API 被标记为已弃用。看起来我可以从 Windows SDK 使用一些 DirectX 媒体对象 (DMO),但需要编写大量互操作。

我想知道是否有一个可以执行转换的非托管库的良好托管包装器。它需要一个许可证,允许它作为闭源商业应用程序的一部分进行分发。

有帮助吗?

解决方案

我还没有亲自尝试过(所以不确定这是否是“最佳”解决方案),但是 http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx 看起来应该能满足你的要求...

其他提示

你可以看看 低音库。它有附加组件,例如用于编码/解码的 BASSWMA 和 BASSEnc。它的所有 API 都可以通过 .NET 使用 低音网 包装纸。

BASS 和 BASS.Net 均可获得商业用途许可,但需支付合理的费用(每个 100 欧元)。

如果您愿意编写一些 C++/CLI,那么您不需要太多代码来创建 DirectShow 包装器来执行此操作。然后可以直接从 C# 程序集调用它,无需搞乱互操作。使用 DirectShow 比直接使用 WMF 更容易,因为您不必执行任何文件解析或 I/O - 一切都为您完成。作为参考,我在一个商业应用程序中有代码,可以用不到 100 行 C++ 代码将 WMA 编码到 WAV 文件,所有代码都包含在一个友好的 .Net 类中。如果你沿着这条路走下去,明智地使用智能指针会有所帮助......

首先,看看这个:

http://windowsmedianet.sourceforge.net/

然后,搜索 IWMWritter - 以及初始化它的各种方法。您将提供原始 PCM 数据,它将写出 wma 文件。

请标记我的答案以获取更多信息。

你可能会看看 www.mitov.com. 。那里有一些图书馆可能会有所帮助。我相信,您需要购买一份副本才能在商业产品中发货,但我认为这是一个合理的价格。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top