使用.NET将WAV转换为WMA

时间:2008-09-15 16:11:20

标签: .net audio wma

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

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

5 个答案:

答案 0 :(得分:1)

我没有亲自试过(所以不确定它是否是'最佳'解决方案),但http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx看起来应该符合您的要求...

答案 1 :(得分:1)

您可以查看BASS library。 它有附加组件,如BASSWMA和BASSEnc,用于编码/解码。 可以使用BASS.Net包装器从.NET访问其所有API。

BASS和BASS.Net都可以获得商业用途的许可,费用合理(每个100欧元)。

答案 2 :(得分:1)

如果您习惯于编写一些C ++ / CLI,那么您不需要太多代码就可以在DirectShow周围创建一个包装器来执行此操作。然后可以直接从C#程序集调用它,而不需要使用interop。使用DirectShow比直接使用WMF要容易得多,因为您不需要进行任何文件解析或I / O - 这一切都是为您完成的。作为参考,我在一个商业应用程序中有代码,可以在少于100行的C ++中对WMA文件进行编码/解码,所有这些都包含在一个友好的.Net类中。明智地使用智能指针有助于你顺着这条路走下去......

答案 3 :(得分:1)

首先,看看这个:

http://windowsmedianet.sourceforge.net/

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

请为我的答案添加更多信息。

答案 4 :(得分:0)

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

相关问题