D.C.資訊交流網-[綜合論壇]-關閉註冊's Archiver

s110119 發表於 2008-11-9 17:10

C++中使用錄音功能

g_hWndMCIWnd = MCIWndCreate(this->m_hWnd,::AfxGetApp()->m_hInstance,WS_CAPTION,NULL);   
        MCIWndNew(g_hWndMCIWnd,"waveaudio");

        MCI_WAVE_SET_PARMS set_parms;
        set_parms.wFormatTag      = WAVE_FORMAT_PCM;
    set_parms.wBitsPerSample  = 16;
    set_parms.nChannels       = 1;
    set_parms.nBlockAlign     = (set_parms.nChannels*set_parms.wBitsPerSample)/8;
    set_parms.nSamplesPerSec  = 44100;
    set_parms.nAvgBytesPerSec = ((set_parms.wBitsPerSample) *
                                set_parms.nChannels *
                                set_parms.nSamplesPerSec)/8;
        int deviceID=MCIWndGetDeviceID(g_hWndMCIWnd);
        int result = mciSendCommand( deviceID, MCI_SET,
                               MCI_WAIT
                             | MCI_WAVE_SET_FORMATTAG
                             | MCI_WAVE_SET_BITSPERSAMPLE
                             | MCI_WAVE_SET_CHANNELS
                             | MCI_WAVE_SET_SAMPLESPERSEC
                             | MCI_WAVE_SET_AVGBYTESPERSEC
                             | MCI_WAVE_SET_BLOCKALIGN,
                               (DWORD)(LPVOID)&set_parms);


        AfxMessageBox("錄音中");
        MCIWndRecord(g_hWndMCIWnd); <--開始錄音

        MCIWndStop(g_hWndMCIWnd);<-- 結束錄音

kady1988 發表於 2009-8-26 20:38

謝謝大大

分享知識~~

史萊姆 發表於 2010-2-25 03:42

又多學了一樣  感謝分享

litfish04 發表於 2010-2-25 17:33

原来使用MCI API 哦,多谢大大

頁: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.