【发布时间】:2010-09-30 09:11:23
【问题描述】:
我想在 C# .NET 中创建一个非常简单的软件,我可以将文件夹的路径传递给它并检测频率低于给定阈值的所有文件。关于我将如何做到这一点的任何指示?
【问题讨论】:
-
你的意思是sampling rate吗?
我想在 C# .NET 中创建一个非常简单的软件,我可以将文件夹的路径传递给它并检测频率低于给定阈值的所有文件。关于我将如何做到这一点的任何指示?
【问题讨论】:
您必须阅读 mp3 文件。为此,您必须找到它们的规格。
一般mp3文件被包装在ID3标签中,所以你必须阅读它,找到它的长度并跳过它。我们以ID3v2.3 为例:
ID3v2/file identifier "ID3"
ID3v2 version $03 00
ID3v2 flags %abc00000
ID3v2 size 4 * %0xxxxxxx
所以字节 6,7,8,9 以大端形式存储标头长度。这是一些文件的示例:
0 1 2 3 4 5 6 7 8 9 A B C D E F
49 44 33 03 00 00 00 00 07 76 54 43 4f 4e 00 00
07 76 - 是大小。您需要将第一个字节左移,以便实际大小为3F6。然后加 10 (A) 得到偏移量 = 400。这是mp3头的起始地址。
然后你对mp3 header进行描述:
位是:AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM,我们需要FF,采样频率并将t转换为实际频率:
bits MPEG1 MPEG2 MPEG2.5
00 44100 22050 11025
01 48000 24000 12000
10 32000 16000 8000
11 reserv. reserv. reserv.
【讨论】:
您可以使用UltraID3Lib 获取mp3 元数据(比特率、频率)
【讨论】:
检查文件中频率位的值。 There is some mp3 格式信息。
【讨论】: