【发布时间】:2020-05-11 03:40:56
【问题描述】:
使用代码:
using (var reader = new WaveFileReader(audioFileLocation))
{
// Do something....
}
如果给定一个抛出异常的 wav 文件:
不是 WAVE 文件 - 没有 RIFF 标头
异常详细信息:System.FormatException:不是 WAVE 文件 - 没有 RIFF 标头
它会锁定文件audioFileLocation 以防止其被删除。
在使用阅读器之前,有什么方法可以检查是否存在有效的 RIFF 标头?
【问题讨论】:
-
WaveFileReader中很可能存在一个错误,因为它不会关闭文件。你从哪里得到的那门课? -
文件锁定多长时间?直到进程终止还是一会儿?
-
它被锁定,直到我重新启动 IIS。这是
NAudio.Wave.WaveFileReader类 -
WaveFileReader类在这里有一个错误。根据 codeplex 上的源代码,这里:naudio.codeplex.com/SourceControl/latest#NAudio/Wave/…,它检查文件是否是有效的 RIFF 文件在设置ownInput参数之前,因此如果给定一个参数,则不会关闭流无效文件。 -
@Lasse 感谢会提交错误报告