Rob*_*Rob 4 c# audio memorystream stream wav
有没有办法,在框架内或使用P/Invoke来确定在MemoryStream中保存的wav文件的持续时间?
我已经看过Managed DirectX和另一个类似的问题,但是一切似乎都适用于路径,而不是提供任何传递流的方法.我引用的问题中的一个链接(一个简单的C#Wave编辑器 ......)非常清楚我可以解析它MemoryStream以确定wav文件的持续时间.理想情况下,我不想重新发明轮子.
我同意亚历克斯.我花时间将一个包含三行代码的小程序放在一起,打印出wav文件的持续时间.
var stream=new MemoryStream(File.ReadAllBytes("test.wav"));
var wave = new WaveFileReader(stream);
Console.WriteLine(wave.TotalTime); // wave.TotalTime -> TimeSpan
Run Code Online (Sandbox Code Playgroud)
下载NAudio库:你会在包中找到NAudio.dll.
只需在您的项目中引用NAudio.dll即可.
在撰写本文时,它的版本为1.3.
就像作者在他的博客上说的那样,WaveFileReader也接受了Stream ; 不只是文件路径.
请记住,版本1.3是为x86构建的.如果您希望它在x64上运行,则需要将项目强制为x86.如果您想要NA64.dll for x64(像我一样),您需要使用'any cpu'重新编译.对我来说,两种解决方案都像魅力一样.
| 归档时间: |
|
| 查看次数: |
7576 次 |
| 最近记录: |