我现在使用MediaPlayer控件调入WAV文件,希望在调入文件时知道文件的播放时间,这能不能完成啊

解决方案 »

  1.   

    WAV文件内部有它的音频格式,知道格式后用文件中数据长度换算一下就可以确定放音长度了.
      

  2.   

    很简单,MediaPlayer.Length就是WAV文件的播放时间(按毫秒)!
      

  3.   

    另有一复杂方法,Wave文件的格式为文件头(44字节)其后跟音频数据,
    文件头其格式为
      TWaveHeader = record //定义一个Wav文件头格式
        rId : longint;
        rLen : longint;
        wId : longint;
        fId : longint;
        fLen : longint;
        wFormatTag : word;
        nChannels : word;     //声道数
        nSamplesPerSec : longint; //每秒采样频率
        nAvgBytesPerSec : longint; //每秒字节数
        nBlockAlign : word;  
        wBitsPerSample : word;  //采样位一般16位和8位
        dId : longint;
        wSampleLength : longint;
      end;所以WAVE文件的播放时间=(文件长度-44)/nAvgBytesPerSec 秒。