我有一个使用NAudio将mp3转换为wav的项目。(使用WaveFormatConversionStream.CreatePcmStream()方法)
它在我的开发机器上运行得很好,但是现在我正在一台新的服务器上试用它,它会抛出这个错误:
NAudio.MmException: NoDriver调用acmFormatSuggest
在NAudio.MmException.Try(MmResult结果,字符串函数)
在NAudio.Wave.Compression.AcmStream.SuggestPcmFormat(WaveFormat compressedFormat)
在NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(WaveStream sourceStream)
我假设NAudio在这里需要一些不是在新服务器上的依赖项。它是什么,我应该从哪里安装它?
服务器是一个新孵化的Amazon 2008 32位实例,安装了“EC2服务器”和“应用服务器”角色。
发布于 2016-02-25 21:31:27
运行Windows2008Win,使用R2检测Wav和Mp3文件的长度,我遇到了同样的问题。
我通过以下方法解决了这个问题:https://technet.microsoft.com/en-us/library/cc772567.aspx
本质上,安装“桌面体验”功能。
以上所述将需要重新启动服务器。
一旦安装了上面的内容,我就不需要再启用任何功能,问题就解决了。
发布于 2011-04-14 06:10:40
WaveFormatConversionStream使用安装在计算机上的ACM编解码器。它首先询问是否安装了可以从源转换到目标格式的ACM编解码器。似乎您在目标机器上缺少了一个MP3编解码器。
NAudio确实提供了一种不同的方式来解码MP3s,使用DMO MP3解码器(DirectX Media Object),它也可能在目标机器上。要使用它,您需要从Codeplex获得最新的NAudio源代码,并在MP3FileReader (现在为您完成向PCM的转换)中,使用以下行:
decompressor = new AcmMp3FrameDecompressor(this.Mp3WaveFormat); 并代之以
decompressor = new DmoMp3FrameDecompressor(this.Mp3WaveFormat); 发布于 2017-08-12 14:19:35
多亏了@Shiroy,我找到了@MarkHeath的惊人的NLayer (https://github.com/naudio/NLayer)库。如果使用NLayer.NAudioSupport安装它,则可以使用一行额外的代码进行压缩(而不需要安装编解码器)。
https://stackoverflow.com/questions/5652388
复制相似问题