使用 C# 测试音频文件
Posted
技术标签:
【中文标题】使用 C# 测试音频文件【英文标题】:Testing an Audio File Using C# 【发布时间】:2014-07-13 06:34:38 【问题描述】:我想编写一个脚本来测试特定的 .WAV 文件并确定它是否被正常录制。我的意思是,我要让多台计算机同时录制相同的输入,保存它们的音频文件,然后我需要看看哪些计算机由于那里的任何原因无法录制它可能是。
我正在考虑检查音频文件的大小,但我不确定是否可以说某台在其输出文件中没有实际录音的 PC 未通过测试,而另一台 PC 已通过它,仅基于输出文件的大小。
我希望我对我的问题足够清楚。最好的问候。
【问题讨论】:
【参考方案1】:您可以查询文件属性的采样率,采样率越高质量越好。像这样,取自这里:Whant to check all kind of audio & video quality in asp.net C#
using WMPLib;
WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass();
IWMPMedia mediaInfo = wmp.newMedia("myfile.wmv");
// duration
Console.WriteLine("Duration = " + mediaInfo.duration);
// write named attributes
for (int i=0; i<mediaInfo.attributeCount; i++)
Console.WriteLine(mediaInfo.getAttributeName(i) + " = " + m ediaInfo.getItemInfo(mediaInfo.getAttributeName(i)) );
或者使用第三部分工具/库来测试音质
【讨论】:
似乎从 WAV 文件中检索到的唯一属性是它的持续时间。另一方面,在另一个 MP3 文件中,我设法检索到更多的属性,尽管它们似乎都没有帮助我或与我的情况有关。【参考方案2】:NAudio 是我的解决方案。我强烈建议在类似情况下使用这个库。
【讨论】:
以上是关于使用 C# 测试音频文件的主要内容,如果未能解决你的问题,请参考以下文章