zoukankan      html  css  js  c++  java
  • iTunesDB文件格式

    买了台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)

  • 相关阅读:
    Docker系列
    Eclipse 安装TestNG插件,结合Maven使用
    HttpClient设置忽略SSL,实现HTTPS访问, 解决Certificates does not conform to algorithm constraints
    Jenkins Html Rport 使用frame报错解决办法
    Zend Framework1 框架入门(针对Windows,包含安装配置与数据库增删改查)
    Windows下Nginx配置SSL实现Https访问(包含证书生成)
    Windows下Nginx Virtual Host多站点配置详解
    幽灵般的存在:零宽空白
    我的公司培训讲义(2):设计模式思想精要教程
    突如其来而又必然的离职
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/823187.html
Copyright © 2011-2022 走看看