转载请标明出处http://blog.youkuaiyun.com/yeguanping11
Edited on 2010.08.14
Step1://获取整个iPod模块的图片格式表,只要调用一次即可因为其是静态存在iPod模块里的.
Send: GetArtworkFormats()
Cmd: ff 55 02 03 16 e5
Recv: RetArtworkFormats()
Cmd:FF 55 1E 03 17 04 1F 02 00 80 00 80 04 2C 02 00 80 00 80 04 24 02 01 40 01 40 04 25 02 00 37 00 37 2C
//返回解析:
041F0200800080//formatID=0x041f 128*128 16bpp图
042C0200800080//formatID=0x042c 128*128 16bpp图
04240201400140//formatID=0x0424 64*64 16bpp图
04250200370037//formatID=0x0425 37*37 16bpp图
//分解:
041F//表示格式ID号
02 //表示色16 bpp 小端排列的图片See Table6-72 (Page228)
0080//width = 128
0080//height = 128
Step2://获取某首歌的每种图片的数量
Send:GetIndexedPlayingTrackInfo(unsignedcharucInfoType,DWORD dwTrackIndex,WORD wChapterIndex)
Cmd: ff 5509031208000000010001d8
//发送解析:
//ucInforTpye = 08 表示要取Artwork count 类型的信息
//dwTrackIndex = 0,wChapIndex = 0 表示要取的位置本目录第一首歌
Recv: RetIndexedPlayingTrackInfor()
Cmd: FF5513031308041F0001042C0000042400010425000128
//返回解析:得到此Index的歌曲的formatID 及其对应的可行的airwork 的数量
08 //Artwork count 类型
041F0001 //formatID=0x041f 的图片有一张
042C0000 //formatID=0x042c 的图片有零张
04240001 //formatID=0x0424 的图片有一张
04250001 //formatID=0x0425 的图片有一张
Step3://获取某首歌某种格式的图片的timeoffset(可理解为图片数据的位置)表,其用millisecond(毫秒)作为单位
Send: GetTrackArtworkTimes(DWORDdwTrackIndex,WORD wFormatID,WORD wArtworkIndex,WORD wCount)
Cmd:ff550c031f00000000041f00000001checksum
//发送解析:dwTrackIndex = 0,wFormatID = 0x041f wArtworkIndex = 0; wCount = 1;
Recv: RetTrackArtworkTimes()
Cmd: FF5506032000000000D7
//返回解析:得到与一个track对应的timesoffset表
00000000//dwTimeOffset = 0;
Step4://获取某首歌某张图的图片数据
send: GetTrackArtworkData(DWORD dwTrackIndex,WORD wformatID,DWORD dwTimeOffset)
Cmd:ff550c031800000000041f00000000checksum
//发送解析:dwTrackIndex = 0,wforMatID = 0x041f,dwTimeOffset = 0;
//获取第一首歌formatId为x041f的位置为0 的图片数据
Recv: RetTrackArtworkData()
Cmd:FF550003FA031900000200800080000000000080008000000100
A210A218A218C218A218821082108210A21881108110811082188110811081
//返回解析:
0000//描述符数据报Index 注意当Index>0的时候,以下第到7~23个字节是省略了(避免重复)
02 //编码方式RGB565色16bpp 小端存储
0080//图片width = 128
0080//图片height = 128
0000//插入长方形的lefttop.x = 0
0000//插入长方形的lefttop.y = 0
0080//插入长方形的rightbuttom.x = 128
0080//插入长方形的rightbuttom.y = 128
00000100//行大小rowsize = 256
A210A218//以下均为图片像素数据
//把图片信息和数据转化成图片即可显示出来