您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ waveInStart函数代码示例

51自学网 2021-06-03 09:52:45
  C++
这篇教程C++ waveInStart函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中waveInStart函数的典型用法代码示例。如果您正苦于以下问题:C++ waveInStart函数的具体用法?C++ waveInStart怎么用?C++ waveInStart使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了waveInStart函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: WaveInStart

void 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: main

int 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: CreateThread

bool 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,


万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。