java获取mp3内嵌图片

编程入门 行业动态 更新时间:2024-10-07 12:20:26

java获取mp3<a href=https://www.elefans.com/category/jswz/34/1750599.html style=内嵌图片"/>

java获取mp3内嵌图片

mp3封面图片的嵌入与显示的代码

现在的智能手机播放器大多可以显示mp3中的封面图片,我们自编的播放器也应与时俱进,跟上潮流,能嵌能显,所以笔者研究了一下这个问题,写出代码,现贴出来与大家共享,对mp3数据结构不熟悉的请先参阅笔者的旧贴《MP3文件的数据结构以及为mp3内嵌歌词的代码》一文。

先看一下嵌入了封面图片的mp3的部分数据:

--------------------------------------------------------------------------

0000: 49 44 33 03 00 00 00 40 01 7A 41 50 49 43 0001 ID3....@.zAPIC..

0010: 00 12 00 00 00 69 6D 61 67 65 2F 6A 70 65 6700 .....image/jpeg.

0020: 03 00 FF D8 FF E0 00 10 4A 46 49 46 00 01 0100 ...?...JFIF....

---------------------------------------------------------------------------

可以看到,封面图片的数据是保存在ID3V2的“APIC”标签帧下的,在这首mp3中,从0022字节起,就是图片的数据,只要把图片的全部数据原封不动地复制到这里就行了。这首mp3的封面图片格式是jpg,其实可以是任何图片格式,只要你播放器上的图片框能显示就行。

一、显示封面图片的代码。

Private Declare Sub CopyMemory Lib "kernel32" Alias"RtlMoveMemory" (Destination As Any, Source As Any, ByVal picLen AsLong)

Private Sub 显示mp3封面图片()

Dim OpenName As String, SaveName As String

Dim ID3v As String * 3, L1 As Byte, L2 As Byte, L3 As Byte

Dim ID3V2Info() As Byte, tem() As Byte

Dim picLen As Long, ID3Len As Long, Place As Long, p As Long, annexAs String

OpenName = "(全路径mp3文件名)"

Open OpenName For Binary As #1

Get #1, , ID3v

If ID3v <> "ID3" Then Close #1: Exit Sub

Get #1, 8, L1

Get #1, , L2

Get #1, , L3

ID3Len = L1

ID3Len = ID3Len * &H4000 L2 * &H80 L3

ReDim ID3V2Info(ID3Len - 1)

Get #1, , ID3V2Info

Close #1

tem = StrConv("APIC", vbFromUnicode)

p = InStrB(ID3V2Info, tem): If p = 0 Then Exit Sub '如果没有图片退出

picLen = CLng(ID3V2Info(p 4)) * 65536 CLng(ID3V2Info(p 5)) *256 ID3V2Info(p 6)

tem = StrConv("imag", vbFromUnicode)

p = InStrB(p, ID3V2Info, tem): If p = 0 Then Exit Sub

CopyMemory tem(0), ID3V2Info(p 5), 4 '获取图片格式

annex = Replace(StrConv(tem, vbUnicode), Chr(0), "")

Place = p IIf(Len(annex) = 4, 12, 11)

picLen = picLen - IIf(Len(annex) = 4, 14, 13)

ReDim tem(picLen - 1)

更多推荐

java获取mp3内嵌图片

本文发布于:2024-02-07 01:45:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1752527.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:内嵌   图片   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!