我想在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头部的描述:
位是:AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM
,我们需要FF
,采样频率并将其转换为实际频率:
bits MPEG1 MPEG2 MPEG2.5
00 44100 22050 11025
01 48000 24000 12000
10 32000 16000 8000
11 reserv. reserv. reserv.