社区
Delphi
帖子详情
如何读取 WMA 文件里面的专辑封面图片?
Frank.WU
2007-11-21 09:06:13
新的版本的 千千静听 和 WMA11 都有读取文件里面包含的专辑封面(就是一个图片)的功能,我想知道用 delphi 如何读取这个封面图片?
...全文
608
4
打赏
收藏
如何读取 WMA 文件里面的专辑封面图片?
新的版本的 千千静听 和 WMA11 都有读取文件里面包含的专辑封面(就是一个图片)的功能,我想知道用 delphi 如何读取这个封面图片?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
蒋晟
2007-11-25
打赏
举报
回复
IWMHeaderInfo::GetAttributeByName
ydlchina
2007-11-25
打赏
举报
回复
学习一下,能有代码就好了。
huayufei
2007-11-21
打赏
举报
回复
wma文件格式(zt)
()Wma 格式歌曲信息文件结构,附读写类(Delphi)
linle @ 2006-05-01 13:10
以前的一点研究,公开好了,有什么疑问可以和我讨论
三个多月前的代码,,比较幼稚,大家将就一下吧
文件结构示意图
格式的简单说明:
如图1,每一个WMA文件,它的头16个字节是固定的,为十六进制的“30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C”, 用来标识这个是否为WMA文件。接下来的8个字节为一个整数,表示整个WMA文件头部的大小,这个头部里面包含了Tag信息等所有非音频信息,头部后面的是音频信息,我们在这里就不深入了解了。那个整数接下来的6个字节还没搞清楚是什么用的,不过不影响我们对Tag信息的读写。
也就是说从文件开始偏移量为31开始,里面存放了很多帧,有我们需要的标准Tag信息,扩展Tag信息,WMA文件控制信息等等。每个帧不是等长的,但是帧头是固定的24个字节,其中前16字节是用来标识这个帧的名字,后8个字节是用来表示这个帧(包括帧头)的大小。这一点和MP3文件的ID3V2信息比较像。
由于我们只需要读写Tag信息,而Tag信息又分别保存在两个帧里,分别为标准Tag帧和扩展Tag帧,所有我们只需要处理这两个帧,其他帧完全可以根据获得的帧长度来跳过。
如图2,标准Tag帧只包含歌曲标题,艺术家,版权,备注四个内容。它的帧名是十六进制的“33 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C”,在24个字节的帧头后紧跟着5个分别为2个字节的整数,前四个分别表示歌曲标题,艺术家,版权,备注的大小,第五个还不清楚是什么用的,大部分情况下是不使用的,即它的大小为0的。
在这10个字节后,这四个信息的内容就按顺序存放了。记住,在WMA文件里,所有的文字都是按Unicode宽字符的编码方式储存的,而且每个字符串后面都又一个0结束字符的。
如图3,再看扩展Tag帧,这里就比较麻烦了,里面包含的信息的个数是不确定的,每个信息也是按照像帧一样的方式组织起来的。扩展Tag帧的帧名是十六进制的“40 A4 D0 D2 07 E3 D2 11 97 F0 00 A0 C9 5E A8 50”,在24字节的帧头后先有一个两个字节的整数表示这个帧里一共有的扩展信息个数(ExNo)。
如图4,每一个扩展信息包含扩展信息名字和对应的值。先有一个两个字节的整数来表示扩展名字信息的大小,接着是扩展信息,然后有一个两个字节的整数标志(Flag),这个后面再讲。然后又是一个两个字节的整数,表示值的大小。接着就是这个值。
当扩展信息名字为WMFSDKVersion时,这个值表示的是这个WMA文件的版本;当扩展信息名字为WM/AlbumTitle时,这个值代表的就是专辑名;当扩展信息名字为WM/Genre时,这个值代表的就是流派;同理,很容易从扩展信息的名字看出这个值的用途的。这些扩展信息的名字和值几乎都是用Unicode的字符串来存储的,到现在为止只发现对下面两个情况例外。(关于所有扩展信息的名字可以从很多地方查到,比如SDK帮助,MSDN)
下面再来看看那个标志Flag,这个基本上是为没什么用的(通常值为0),只对WM/TrackNumber和WM/Track这两个扩展信息名字有用,当Flag为3的时候后面的值(也就是曲目信息)是以4个字节的整数的形式表示,当Flag为0的时候,曲目信息是以普通的字符串形式表示的
参考http://blog.chinaunix.net/u/19881/showart.php?id=217489
你自己去研究吧
tianhuo_soft
2007-11-21
打赏
举报
回复
高手~!!~
tinytag:使用python 2或3
读取
音乐元数据和MP3,OGG,OPUS,MP4,M4A,FLAC,
WMA
和Wave
文件
的长度
读取
音频
文件
的标签,长度和
封面
图像 支持的格式 MP3(ID3 v1,v1.1,v2.2,v2.3 +) 波浪/ RIFF 奥格 OPUS FLAC
WMA
MP4 / M4A / M4B 纯python,没有依赖项 支持python 2.7和3.4或更高版本 高测试覆盖率 仅...
MP3标签信息获取 VC 代码.rar
VC 获取MP3音乐格式
文件
的标签信息,诸如歌曲名称、歌手、版权、
专辑
等信息。其实是VC按照MP3
文件
特有的信息结构,获取最后的128个字节,本实例就是教你如何
读取
这些信息的。
IDTE- ID3 Tag Editor:标记FLAC,Vorbis,Lyrics,
WMA
,Wavpack,ID3标记以更智能的方式。-开源
IDTE是Windows的全功能标签编辑器,它支持在音频
文件
中标记FLAC,APE,ID3V1.x / 2.x,
WMA
,LYRICS和VORBIS标签。 它还支持播放40+种多种有损和无损音乐格式,例如FLAC,ALAC,OGG,APE,MP3等。它可以根据标签信息...
foobar 2000 1.2.6 超酷win8风格美化
修复
专辑
封面
显示 特色: 1、开放的组件体系结构允许第三方开发者来扩展播放器的功能foobar2000 foobar2000 2、内置音频格式支持:MP3, MP4, AAC, CD Audio,
WMA
, Vorbis, FLAC, WavPack, WAV, AIFF, Musepack, ...
阿香婆光盘刻录工具 Ashampoo Burning Studio 21.6.1.63 中文多.zip
光盘表面被划伤后会无法
读取
光盘,也就无法恢复
文件
。Ashampoo Burning Studio 21 通过将数据的多个副本散布在光盘上,同时配合紧急恢复工具,免去数据丢失的恐惧。这样,即使光盘被划伤,您仍然可以恢复重要的
文件
...
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章