我用(1,16,8000)对采集到进行GSM610压缩,然后解压缩,用相同的参数(1,16,8000)进行回放,放出来的是支支嘎嘎的噪音,哪位能告诉我这是为什么呀????????

解决方案 »

  1.   

    呵呵,GSM610算法只能用于压缩(1,8,8000)
      

  2.   

    waveform.wFormatTag = 49;
    waveform.nChannels = 1;
    waveform.nSamplesPerSec = 8000;
    waveform.nAvgBytesPerSec   = 1625;
    waveform.nBlockAlign = 65;
    waveform.wBitsPerSample = 16;
    waveform.cbSize = 2; int nRet = waveInOpen(&hWaveIn,WAVE_MAPPER,&waveform,(DWORD)this->m_hWnd,NULL,CALLBACK_WINDOW);
    waveInOpen执行出错,返回32????????
      

  3.   

    在录音的时候 waveform.wFormatTag=WAVE_FORMAT_PCM 这个只能这么设置么?????
      

  4.   

    是的,音频源泉的wFormatTag只能设置为WAVE_FORMAT_PCM,如需录制为其它格式,你需要启动一个codec进行acmStreamConvert,然后再存盘。GSM610只能压缩单声道,8000Hz,8位。
      

  5.   

    你先不压缩直接回放试一下, 可能是采集和回放出了问题也难说
    m_waveform.wFormatTag=WAVE_FORMAT_PCM;
    m_waveform.nChannels=1;
    m_waveform.nSamplesPerSec=8000;
    m_waveform.nAvgBytesPerSec=8000;
    m_waveform.nBlockAlign=1;
    m_waveform.wBitsPerSample=8;
    m_waveform.cbSize=0;
    if (waveInOpen(&m_hWaveIn,uDeviceID,&m_waveform,(DWORD)waveInProc,(DWORD)this,CALLBACK_FUNCTION)) {