加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在.NET中检测mp3的频率?

发布时间:2020-12-16 01:38:26 所属栏目:百科 来源:网络整理
导读:我想在C#.NET中创建一个非常简单的软件,我可以将文件夹的路径传递给并检测频率低于给定阈值的所有文件.有关如何做到这一点的任何指示? 解决方法 你必须阅读mp3文件.要做到这一点,你必须找到它们的规格. 通常mp3文件被包装到ID3标签中,因此您必须阅读它,找到
我想在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以big-endian形式存储标题长度.这是一些文件的示例:

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读