博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iTunesDB文件格式
阅读量:6002 次
发布时间:2019-06-20

本文共 1456 字,大约阅读时间需要 4 分钟。

买了台iPod,发现用iTunes有很多局限性和限制,所以想自己写一个程序来取代iTunes传输歌曲。自然就要了解iTunesDB的格式啦:

iTunesDB文件的结构:

 mhdb(文件描述)
  mhsd(列表记录)
  mhlt(歌曲列表记录)
  mhit (歌曲1描述)
  mhod (标题)
  mhod (路径)
  mhod (专辑)
  mhod (类型)
  ...
  mhit (歌曲2描述)
  mhod (标题)
  mhod (路径)
  mhod (专辑)
  mhod (类型)
  ...
  mhsd (列表记录)
  mhlp (播放列表)
  mhyp (所有歌曲播放列表)
  mhod (Type=100,标准数据)
  mhip (歌曲索引=1)
  mhod (Type=100)
  mhip (歌曲索引=2)
  mhod (Type=100)
  ...
  mhyp (用户定义的播放列表)
  mhod (Type=100) (标准数据)
  mhod (Type=1) (标题)
  mhip (歌曲索引=2)
  mhod (Type=100)

具体描述如下
1. mhdb(文件描述,每个iTunesDB只包含一条mhdb记录)
    1~4 标示符('mhdb':文件头4个字节,用来标示改文件是iTunesDB的格式,值固定为 'mhdb'
    5~8 记录长度:32位整数(4字节),截止到第一条子记录(mhsd)的长度。
    9~12 文件长度:32位整数(4字节),文件长度。
    13~16 未知:32位整数(4字节),值通常为 1
    17~20 未知:32位整数(4字节),值通常为 1
    21~24 子记录数:32位整数(4字节),值通常为2,指出文件包含的 mhsd 记录数。
    结束符:null(ACSII码 0)
2. mhsd(包含歌曲列表或包含播放列表的头部描述)
    1~4 标示符('mhsd':值固定为 'mhsd'
    5~8 头部长度:32位整数(4字节)。
    9~12 数据长度:32位整数(4字节),包括头部及所有子记录(mhlt或mhlp)的长度!
    13~16 索引值:32位整数(4字节),值唯一。
    结束符:null(ACSII码 0)
3. mhlt(歌曲列表的头部描述)
    1~4 标示符('mhlt':值固定为 'mhlt'
    5~8 头部长度:32位整数(4字节)。
    9~12 数据长度:32位整数(4字节),包括头部及所有子记录(mhit)的长度!
    结束符:null(ACSII码 0)
4. mhit(歌曲描述)
    1~4 标示符('mhit'):值固定为 'mhit'
    5~8 头部长度:32位整数(4字节)。
    9~12 数据长度:32位整数(4字节),包括头部及所有子记录(mhod)的长度!
    13~16 子记录数(mhod):32位整数(4字节)。
    17~20 歌曲标识(唯一):32位整数(4字节)。
    21~24 未知:4字节。值通常为 1
    25~32 未知:8字节。值通常为 0
    33~36 歌曲文件最终修改时间:4字节
    37~40 歌曲文件长度
    41~44 歌曲时间:32位整数(4字节)。单位:毫秒
    45~48 歌曲音轨:32位整数(4字节),例如: 1,2,3...
    49~52 专辑总音轨数:32位整数(4字节)
    53~56 歌曲年代:4字节
    57~60 歌曲速率:4字节
    结束符:null(ACSII码 0)

转载地址:http://uwdmx.baihongyu.com/

你可能感兴趣的文章
AD域组策略-只显示指定的控制面板选项配置方法
查看>>
BigTable——针对结构型数据的一种分布式存储系统
查看>>
ip通信基础第二周回顾
查看>>
唯美MACD-完全版
查看>>
Canvas中 drawImage绘制图片不显示
查看>>
MyEclipse新建Server项目
查看>>
Magento错误处理
查看>>
茵茵的第一课
查看>>
Linux实战教学笔记53:开源虚拟化KVM(一)搭建部署与概述
查看>>
PAT 1007
查看>>
USACO习题:Friday the Thirteenth
查看>>
C++ VS2012 内存泄露检测
查看>>
zabbix 批量添加聚合图形
查看>>
北京交通大学第六届新生程序设计竞赛题解
查看>>
求解点关于直线的距离、垂足、对称点公式
查看>>
洛谷 P1577 切绳子【二分答案】
查看>>
用 Google Map 的 Geocoder 接口来反向地址解析
查看>>
在中小型公司如何做好测试——论测试计划的重要性
查看>>
BSS段、数据段、代码段、堆与栈
查看>>
python调用c/c++写的dll
查看>>