zoukankan      html  css  js  c++  java
  • temp--test audio micphone

    DWORD CALLBACK waveInProc(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)
    {
    SYZ_TRACE("waveInProc:: hWaveIn: point[%p] uMsg==[%d]", hWaveIn, uMsg);
    char errorChar[256];
    MMRESULT hr;
    //waveInGetErrorText(hr, errorChar, 256);
    //SYZ_TRACE("waveInGetErrorText :: hr[%d], ErrorText[%s]", hr, errorChar);
    if (uMsg == WIM_DATA)
    {
    WAVEHDR* pWaveHdr = (WAVEHDR*)dwParam1;//dwParam1指向WAVEHDR的地址
    wWaveRecord* pWaveRecord = (wWaveRecord*)dwInstance;
    SYZ_TRACE("WAVEHDR stuct data:
    lpData[%p], dwBufferLength[%d], dwBytesRecorded[%d], dwUser[%p], dwFlags[%d], dwLoops[%d], lpNext[%p], reserved[%p]",
    pWaveHdr->lpData, pWaveHdr->dwBufferLength, pWaveHdr->dwBytesRecorded, pWaveHdr->dwUser, pWaveHdr->dwFlags, pWaveHdr->dwLoops, pWaveHdr->lpNext, pWaveHdr->reserved);
    pWaveRecord->Lock();
    if (pWaveRecord->m_bRecording && pWaveHdr->dwBytesRecorded == MAX_BUFF_SOUNDSIZE)
    {
    SYZ_TRACE("befor call waveInUnprepareHeader");
    hr = waveInUnprepareHeader(hWaveIn, pWaveHdr, sizeof(WAVEHDR));
    SYZ_TRACE("waveInUnprepareHeader result [%d]", (hr== MMSYSERR_NOERROR));
    waveInGetErrorText(hr, errorChar, 256);
    SYZ_TRACE("waveInGetErrorText :: hr[%d], ErrorText[%s]", hr, errorChar);
    pWaveHdr->dwBytesRecorded = 0;
    pWaveHdr->dwFlags = 0;
    SYZ_TRACE("befor call waveInPrepareHeader");
    hr = waveInPrepareHeader(hWaveIn, pWaveHdr, sizeof(WAVEHDR));
    SYZ_TRACE("waveInPrepareHeader result [%d]", (hr == MMSYSERR_NOERROR));
    waveInGetErrorText(hr, errorChar, 256);
    SYZ_TRACE("waveInGetErrorText :: hr[%d], ErrorText[%s]", hr , errorChar);
    hr = waveInAddBuffer(hWaveIn, pWaveHdr, sizeof(WAVEHDR));
    SYZ_TRACE("waveInAddBuffer result [%d]", (hr == MMSYSERR_NOERROR));
    waveInGetErrorText(hr, errorChar, 256);
    SYZ_TRACE("waveInGetErrorText :: hr[%d], ErrorText[%s]", hr , errorChar);
    }
    else
    {
    //clear dirty data
    memset(pWaveHdr->lpData, 0, MAX_BUFF_SOUNDSIZE);
    }
    pWaveRecord->Unlock();
    }
    return 0;
    }

  • 相关阅读:
    使用Jackson对字典翻译
    通过代理的方式实现对httpClient的监控,超时回调
    mapstruct 1.4.2和lombok 1.18.16之后版本,报错和mapstruct生成空的实现
    jenkins + sonar 中文文件名报错解决
    linux 启动jar脚本
    easyUI关键(常见)组件详解
    shiro三连斩之概念
    SpringMVC请求参数总结
    springboot jsp,过滤器,拦截器
    CentOS添加使用
  • 原文地址:https://www.cnblogs.com/hqu-ye/p/4660969.html
Copyright © 2011-2022 走看看