熟悉 wave 文件的朋友请进。wave 文件中有许多数据的采样。请问这些采样是什么含义?知道了这些采样,能知道对应的频率吗?谢谢!

解决方案 »

  1.   

    从wave文件种读出WAVEFORMATEX结构,如果wFormatTag是WAVE_FORMAT_PCM,nSamplesPerSec就是采样频率
      

  2.   

    TO akiko(弥弥) :谢谢~~~~~。不过能否给个稍详细点的例子?另外给分  :)
      

  3.   

    #include <mmsystem.h>
    CFile cf("C:\\1.wav",CFile::modeRead);
    cf.Seek(20,CFile::begin);
    WAVEFORMATEX wf;
    cf.Read(&wf,sizeof(WAVEFORMATEX));
    cf.Close();
      

  4.   

    这个是从<<Programming Windows>>上摘的wave文件格式:Offset Bytes Data
    0000     4   "RIFF"
    0004     4   size of waveform chunk (file size minus 8)
    0008     4   "WAVE"
    000C     4   "fmt "
    0010     4   size of format chunk (16 bytes)
    0014     2   wf.wFormatTag = WAVE_FORMAT_PCM = 1
    0016     2   wf.nChannels
    0018     4   wf.nSamplesPerSec
    001C     4   wf.nAvgBytesPerSec
    0020     2   wf.nBlockAlign
    0022     2   wf.wBitsPerSample
    0024     4   "data"
    0028     4   size of waveform data
    002C         waveform data