gpt4 book ai didi

确定 mp3 文件中的 header 的 Java 代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:37:16 24 4
gpt4 key购买 nike

我一直在编写一个程序,可以确定有关 mp3 文件的所有数据。根据此网页 (http://www.multiweb.cz/twoinches/mp3inside.htm) 上的信息,我的程序将整个 mp3 文件读入一个字节数组,然后在开头检查标签 v2,在结尾处检查标签 v1文件的结尾。

我的问题是您可以从标题中获取的数据。据我所知,我需要搜索 1111_1111 的字节,下一个是 111x_xxxx。这个标准有很多匹配项不是 header ,只是随机巧合,所以我制作了一个 MP3Header 类,它具有上述网页上提到的所有字段(ID、层、比特率等)并被覆盖如果 ID、层和频率匹配,则 equals 方法返回 true(我使用我找到的第一个 header 作为基础,并将它之后的每个其他 header 与那个 header 进行比较)。

此方法似乎非常适用于 CBR mp3 文件,但是一些 VBR 文件让我很难过。我发现的第一个 header 不正确,从那时起,整个比较就搞砸了(我没有检查比特率是否相等,所以这不是原因)。我能想到的唯一有效解释是,开头的 Tag 可能包含扩展 ASCII 表中的字符,并且由于 Java 没有 unsigned int,转换时 1111_1111 (255) 字节可能被解释为 -1诠释。我的问题是,如何确保找到的字节确实是正确的 header ?或者我应该存储符合条件的所有内容,并检查哪一个是最常见的,然后使用它?

谢谢,伊斯特万

P.S:我知道如果我使用 JMF,这可能只需要几行代码就可以解决,但是我很享受这样编写它的挑战。

最佳答案

我知道已经有库可以执行此任务(请参阅 https://id3.org/Implementations)。或许您可以下载源代码,看看他们是如何做到的?

关于确定 mp3 文件中的 header 的 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com