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;
    }

  • 相关阅读:
    第二次项目冲刺(Beta阶段)--第六天
    Struts2+Hibernate简单整合
    Struts中Action的相关知识点
    struts基础配置
    servlet基础及过滤器简介
    JSP中验证码问题
    mybatis中插入数据(id为主键的情况)以及查询数据
    Mybatis基础配置及使用
    JDBC访问数据库
    Mysql中的一些基本操作
  • 原文地址:https://www.cnblogs.com/hqu-ye/p/4660969.html
Copyright © 2011-2022 走看看