读取MP3头文件信息解决方案
发布时间:2011-06-27 19:20:49 文章来源:www.iduyao.cn 采编人员:星星草
读取MP3头文件信息
现在在弄个读MP3文件信息的东东,包括读取作者、持续时间等。最主要是持续时间。在弄文件头的时候遇到问题了,有两种情况:
1、ID3V1格式的
这种格式的属性信息放在最后的128个字节中,读最后的字节即可以读到相关的属性,持续时间不在最后的TAG里面,要从前面的帖头信息里去读。现在在读文件最尾的128个字节时出现这个问题:因为我读的文件是个网络流,象别的文件如SWF、RM都是在文件头里面,只需要读取前面几个或者几十个字节就可以知道这些属性了,但MP3文件的ID3V1版是放在文件尾的,我需要将整个文件读完才能读出后面的信息吗?我是用JAVA来做的,网络流没办法直接跳到后面去。
2、ID3V2格式的
这种格式的属性信息全部放在头件头里在文件的前面。但我在读ID3V2的标签头时遇到看不懂的地方了。我不知道怎么读完前面的标签头,跳到帧头去读持续时间那些信息?网上的文档这里的格式说明为:
2.标签大小
一共四个字节,但每个字节只用7位,最高位不使用恒为0。所以格式如下
0xxxxxxx 0xxxxxxx 0xxxxxxx 0xxxxxxx
计算大小时要将0去掉,得到一个28位的二进制数,就是标签大小(不懂为什么要这样做),计算公式如下:
int total_size;
total_size = (Size[0]&0x7F)*0x200000
+(Size[1]&0x7F)*0x400
+(Size[2]&0x7F)*0x80
+(Size[3]&0x7F)
这里我没看懂,照着这个去弄,跳出这段(size大小)并没有跳出标签头
谢谢!
------解决方案--------------------
http://javamusictag.sourceforge.net/
------解决方案--------------------
http://id3lib.sourceforge.net/
------解决方案--------------------
http://developer.kde.org/~wheeler/taglib.html
------解决方案--------------------
fseek(fp, total_size+10, SEEK_SET);
total_size不包括扩展头的。 所以你需要再前进10个byte
// ------------------- MP3的结构是这样的 ---------------------------
ID3V2Header
ID3V2FrameHeader--ID3V2FrameContent ID3V2FrameHeader--ID3V2FrameContent ... (ID3V2Frame结构是用来存储 标题, 年份, 专辑 ....)
ExtendHeader (10byte的扩展标签头)
FrameHeader-CRC-SideInfo-MAINDATA FrameHeader-CRC-SideInfo-MAINDATA ... (音框)
ID3V1
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
DSHOW push
推模式,ConnectDirect 的,为什么我一直反回错误
下级级用的是HAALI的一个东西,用CMemStream拉模式的时候是可以连接的
...
-
ffmpeg编码后视频速度不正确,质量也不好,求助,求助,求助,求助啊
对采集到得摄像头图像进行编码保存,发现得到的视频质量不好,而且速度不...
-
请问怎么在live555中接收jpeg
请问,我现在想接收一个服务器发送的jpeg 不知道怎么用live555做一个客户端, 接收它并显示。
请问应...
-
XP SP3 YUV420 的fiter依赖 在线等答案……
链接时媒体类型为WMMEDIASUBTYPE_I420
有的XP可以播放出来
有的就不行,请问不能播放...
-
如何获取通过麦克风来获取当前说话的音量?
使用Wave系统API采集音频输入的数据,当数据缓存区满了后,收到消息取得数据后,如何根据这里...
-
RFC3984 有没有完整的中文版本呢?
搜了几个 都是一半英文一半中文的。哎 郁闷!
------解决方案--------------------
英文的凑合...
-
介绍一个学习directshow和com、atl技术的网站
有一个学习directshow和com、atl技术的网站,还可以下视频教程,共享给大家: http://www...
-
攻击帖:jrtplib、live555是个垃圾,刚开始搞流媒体就用这玩意就是找s
不解释~
来丢我砖头吧~~
我分太多了用不完~ 支持的散分~~~
...
-
50分,寻找《Visual C++音频/视频处理技术及工程实践》的随书光盘?
急于使用其中的几个例程。若哪位好心人能够提供,非常感谢!!我的QQ:52...
-
h264的高宽比怎么获取?
我看标准里面只有样点的高宽比啊。
还有,bit rate可以读出来吗?
------解决方案--------------------
是要...