如何在播放前知道mid,wav,3gp(mp4)这些文件已损坏,就是如何通过解析这些文件的头来得到相应的文件信息,而不用再去播放它?

解决方案 »

  1.   

    先研究一下各个文件得头格式吧.WAV的是
    'RIFF' -- 4
    (size) -- 4
    'WAVE' -- 4
    'fmt ' -- 4
    (size) -- 4
    WAVEFORMATEX -- 18
    tag - 2
    channel - 2
    samplerate - 4
    bytepersecond - 4
    blockalign - 2
    bitrate - 2
    cbsize - 2
    'DATA' -- 4
    (size) -- 4Wave文件的一般格式:
    1.头四个字节是RIFF标识符.
    2.接着四个字节是Wave文件的长度-8
    3.接着四个字节是WAVE标识符.fmt chunk.
    4.接着四个字节是fmt标识符.
    5.接着四个字节是fmt chunk的长度(不包括fmt id和它自己用的8个字节)
    6.接着两个字节是wformattag(1为非压缩数据).
    7.接着两个字节是声道数.
    8.接着四个字节是采样频率.
    9.接着四个字节是每秒播放的字节数.
    10.接着两个字节是sample frame的字节数.(blockalign = channel*sample/8).
    11.接着两个字节是采样位数.建议用DXSDK会方便得多