⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 api 层实现语音录制 - 技术文档 - vc文档 - 平台sdk - 立华软件园.htm

📁 语音与识别技术包含很多C语言处理模块系统
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">}
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">int 
            WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPSTR 
            lpCmdLine, int nCmdShow )
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">{
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;CreateMutex( 
            NULL, false, "MyMutex");
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp; 
            if ( GetLastError() == ERROR_ALREADY_EXISTS ) 
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp; 
            { log.write("Exists and Exit"); log.last(); ExitProcess( NULL); }
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp;log.write("Program 
            Start.");
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp;log.nobuff 
            = true;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">DWORD 
            datasize = 48000;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp;// 
            最常用法
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">WAVEFORMATEX 
            waveformat;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">waveformat.wFormatTag=WAVE_FORMAT_PCM;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">waveformat.nChannels=1;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">waveformat.nSamplesPerSec=8000;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">waveformat.nAvgBytesPerSec=8000;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">waveformat.nBlockAlign=1;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">waveformat.wBitsPerSample=8; 
            //指定录音格式
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">waveformat.cbSize=0;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;wsprintf( 
            lpTemp, "WAVEFORMATEX size = %lu", sizeof(WAVEFORMATEX) );
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;log.write(lpTemp);
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">HWAVEIN&nbsp;m_hWaveIn;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">if ( 
            waveInGetNumDevs() ) log.write("有可以使用的 WaveIn 通道");&nbsp;else 
            log.write("没有可以使用的 waveIn 通道");
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">int 
            res=waveInOpen(&amp;m_hWaveIn,WAVE_MAPPER, &amp;waveformat, 
            (DWORD)NULL,0L,CALLBACK_WINDOW); //打开录音设备
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">if ( 
            res == MMSYSERR_NOERROR ) log.write("打开 waveIn 成功");&nbsp;// 
验证创建是否成功
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">else&nbsp;{
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp; 
            wsprintf(lpTemp, "打开 waveIn 通道失败,Error_Code = 0x%x", res );
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp; 
            log.write(lpTemp);
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">} // 
            End of 验证创建是否成功
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">WAVEHDR 
            m_pWaveHdr;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%"> 
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;m_pWaveHdr.lpData 
            = (char *)GlobalLock( GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE, 
            datasize) );
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;memset(m_pWaveHdr.lpData, 
            0, datasize );
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;m_pWaveHdr.dwBufferLength 
            = datasize;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;m_pWaveHdr.dwBytesRecorded 
            = 0;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;m_pWaveHdr.dwUser 
            = 0;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;m_pWaveHdr.dwFlags 
            = 0;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;m_pWaveHdr.dwLoops 
            = 0;
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;wsprintf( 
            lpTemp, "WAVEHDR size = %lu", sizeof(WAVEHDR) );
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;log.write(lpTemp);
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">int 
            resPrepare = waveInPrepareHeader( m_hWaveIn, &amp;m_pWaveHdr, 
            sizeof(WAVEHDR) ); //准备内存块录音
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">if ( 
            resPrepare == MMSYSERR_NOERROR) log.write("准备录音用头文件成功");
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;else&nbsp;{
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp; 
            wsprintf(lpTemp, "不能开辟录音头文件,Error_Code = 0x%03X", resPrepare );
            <P style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">
            <P 
            style="MARGIN: 5px; TEXT-INDENT: 26px; LINE-HEIGHT: 150%">&nbsp;&nbsp; 
            log.write(lpTemp);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -