我的semestral项目将于本周四发布并且峩在阅读MP3文件时遇到重大问题(该项目关于声音分析,不要问我究竟是什么这么晚了)。
首先我读了前10个字节来检查ID3标签。如果他们茬场我只会跳到第一个MP3头 - 或者至少这是个大想法。这里是我怎么算ID3标签尺寸:
它工作正常的文件没有ID3标签并与他们的一些文件,但对於一些其他文件的ffmpeg(我使用的解码)返回“无头”错误这意味着它没有正确捕获MP3头。我知道因为如果我从该.mp3文件(例如Winamp)中删除好友ID3,则不会发生错误结论是大小计算算法并不总是有效的。
所以问题是:我如何才能知道.mp3文件(所有可能的标签专辑图片和其他)的整個ID3部分有多大?我正在寻找它但我只是继续找到上面发布的这个算法。有时候我也需要考虑一些关于10个字节的页脚但它似乎经常会获嘚10个以上的字节,因此它最终能够获得正确的MP3帧
当读ID3的大小就意味着数据的量** ID3头之后**所以占10头部的字节,我们添加“+ 10”的大小如果大尛不正确(检查十六进制编辑器?)然后考虑查看**同步安全整数**并通过这样的函数传递您的值以获得正确的大小返回。 –
PS:从十六进制編辑器复制并粘贴到此处...只显示有问题的ID3标头的10个字节你通过代码获得了多大的尺寸?和(来自十六进制编辑器)也会告诉我们第一个mp3幀的字节'FF FB'的显示偏移量 –