[英]Will the next MVC 6 be part of ASP.NET 4.6 or ASP.NET Core 1.0 or both?
[英]Load Unmanaged dll reference in ASP.NET MVC Core 1.0 (Aka) ASP.net 5 MVC 6
此问题与ASP.NET MVC WEP API和Naudio有关
我想要的是
当我使用此代码时,我正在WPF应用程序中使用原型,wav文件转换为mp3
var retMs = new MemoryStream();
using (var ms = new MemoryStream(File.ReadAllBytes("sound.wav")))
using (var rdr = new WaveFileReader(ms))
using (var wtr = new LameMP3FileWriter(retMs, rdr.WaveFormat, 128))
{
rdr.CopyTo(wtr);
}
return retMs.ToArray();
但是在api项目中使用此代码时,出现了这样的错误
无法加载DLL'libmp3lame.dll':找不到指定的模块。
我知道libmp3lame是未管理的dll,在WPF项目中,我只是将dll复制到bin文件夹,并且一切正常,但是如何在Web API项目中实现这一目标,我的意思是asp.net 5项目
注意
上面的代码在wpf项目中正常工作
另外现在我的API仅支持dotnetframwork,这意味着只有Windows 删除了其他平台依赖项
更新:
在ASP.Net MVC创建问题回购
我参加聚会有点晚了,但我会分享给大家。 NAudio可以将WAVE转换为MP3,而无需使用非托管DLL,从而避免了这个问题。 唯一的麻烦是它必须写出到文件(然后可以读回文件)。 假设您有一个MemoryStream,在其中读取了所有字节(就像您一样):
using (var wfr = new WaveFileReader(ms))
{
MediaFoundationApi.Startup();
MediaFoundationEncoder.EncodeToMp3(wfr, @"C:\Temp\test.mp3", 48000);
MediaFoundationApi.Shutdown();
}
在bin库路径中获取到模块的映射听起来像是一个问题,请查看以下内容,可能会有所帮助-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.