这篇教程C++ waveInStart函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中waveInStart函数的典型用法代码示例。如果您正苦于以下问题:C++ waveInStart函数的具体用法?C++ waveInStart怎么用?C++ waveInStart使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了waveInStart函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: WaveInStartvoid WaveInStart(WaveIn *waveIn, BOOL prep){ MMRESULT res; res = waveInReset(waveIn->handler); if(res) { return; } // prepare header an add the buffer waveIn->header.lpData = (char *) waveIn->data; waveIn->header.dwBufferLength = waveIn->n * 2; waveIn->header.dwBytesRecorded = 0; waveIn->header.dwFlags = 0L; waveIn->header.dwLoops = 0L; waveIn->header.dwUser = 0L; waveInPrepareHeader(waveIn->handler, &waveIn->header, sizeof(WAVEHDR)); res = waveInAddBuffer(waveIn->handler, &waveIn->header, sizeof(WAVEHDR)); if(res) { return; } res = waveInStart(waveIn->handler); if(res) { return; }}
开发者ID:forart,项目名称:virtual-tuner,代码行数:28,
示例2: waveInStart//开始录音BOOL CWaveIn::OpenRecord(){ //已经开始录音 if (m_bRecord) { //返回 return FALSE; } //录音设备句柄无效 if(!m_hIn) { //返回 return FALSE; } //开始录音 m_mmr = waveInStart(m_hIn); //出错 if (m_mmr) { //返回 return FALSE; } //设置录音开始标记 m_bRecord = TRUE; //返回 return TRUE;}
开发者ID:tempbottle,项目名称:TestSet,代码行数:32,
示例3: mainint main(){ HWAVEIN inStream; HWAVEOUT outStream; WAVEFORMATEX waveFormat; WAVEHDR buffer[4]; // pingpong buffers waveFormat.wFormatTag = WAVE_FORMAT_PCM; // PCM audio waveFormat.nSamplesPerSec = 22050; // really 22050 frames/sec waveFormat.nChannels = 2; // stereo waveFormat.wBitsPerSample = 16; // 16bits per sample waveFormat.cbSize = 0; // no extra data waveFormat.nBlockAlign = waveFormat.nChannels * waveFormat.wBitsPerSample / 2; waveFormat.nAvgBytesPerSec = waveFormat.nBlockAlign * waveFormat.nSamplesPerSec; // Event: default security descriptor, Manual Reset, initial non-signaled HANDLE event = CreateEvent(NULL, TRUE, FALSE, "waveout event"); waveInOpen( &inStream, WAVE_MAPPER, &waveFormat, (unsigned long)event, 0, CALLBACK_EVENT); waveOutOpen(&outStream, WAVE_MAPPER, &waveFormat, (unsigned long)event, 0, CALLBACK_EVENT); // initialize the input and output PingPong buffers int index; for(index = 0; index < 4; index++) { buffer[index].dwBufferLength = NUM_FRAMES * waveFormat.nBlockAlign; buffer[index].lpData = (void *)malloc(NUM_FRAMES * waveFormat.nBlockAlign); buffer[index].dwFlags = 0; waveInPrepareHeader( inStream, &buffer[index], sizeof(WAVEHDR)); } ResetEvent(event); for(index= 0; index < 4; index++) // queue all buffers for input waveInAddBuffer(inStream, &buffer[index], sizeof(WAVEHDR)); waveInStart(inStream); while(!( buffer[1].dwFlags & WHDR_DONE)); // poll(!) for 2 full input buffers // move the two full buffers to output waveOutWrite(outStream, &buffer[0], sizeof(WAVEHDR)); waveOutWrite(outStream, &buffer[1], sizeof(WAVEHDR)); int inIndex = 2, outIndex = 0; // the next input and output to watch while(1) { // poll for completed input and output buffers if(buffer[inIndex].dwFlags & WHDR_DONE) { // input buffer complete? waveInAddBuffer( inStream, &buffer[inIndex], sizeof(WAVEHDR)); inIndex = (inIndex+1)%4; // next buffer to watch for full } if(buffer[outIndex].dwFlags & WHDR_DONE) { // output buffer complete? waveOutWrite( outStream, &buffer[outIndex], sizeof(WAVEHDR)); outIndex = (outIndex+1)%4; // next buffer to watch for empty } }}
开发者ID:Salimlou,项目名称:AudioAnecdotes,代码行数:60,
示例4: CreateThreadbool CAudio::InitializeWaveIn(){ if (!waveInGetNumDevs()) return false; MMRESULT mmResult; DWORD dwThreadID = 0; m_hThreadCallBack = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)waveInCallBack, (LPVOID)this, CREATE_SUSPENDED, &dwThreadID); mmResult = waveInOpen(&m_hWaveIn, (WORD)WAVE_MAPPER, &(m_GSMWavefmt.wfx), (LONG)dwThreadID, (LONG)0, CALLBACK_THREAD); if (mmResult != MMSYSERR_NOERROR) return false; for (int i = 0; i < 2; i++) { m_lpInAudioHdr[i]->lpData = (LPSTR)m_lpInAudioData[i]; m_lpInAudioHdr[i]->dwBufferLength = m_nBufferLength; m_lpInAudioHdr[i]->dwFlags = 0; m_lpInAudioHdr[i]->dwLoops = 0; waveInPrepareHeader(m_hWaveIn, m_lpInAudioHdr[i], sizeof(WAVEHDR)); } waveInAddBuffer(m_hWaveIn, m_lpInAudioHdr[m_nWaveInIndex], sizeof(WAVEHDR)); ResumeThread(m_hThreadCallBack); waveInStart(m_hWaveIn); m_bIsWaveInUsed = true; return true;}
开发者ID:nickwu1220,项目名称:PCRemote,代码行数:32,
|