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

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

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

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

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

示例1: AudioStop1

bool __stdcall AudioStop1(){		waveOutReset(m_hWaveOut1);//停止输出	waveOutClose(m_hWaveOut1);//关闭设备    return true;}
开发者ID:fty158,项目名称:x264realtimebroadcaster,代码行数:7,


示例2: ZeroMemory

bool CWavePlay::CloseDevice(){	ZeroMemory(&m_wavformex,sizeof(WAVEFORMATEX)); 	 while(_nWaveFreeBlockCount != 0 && _nWaveFreeBlockCount < BLOCK_COUNT)        Sleep(10);    /*     * unprepare any blocks that are still prepared     */    for(int i = 0; i < _nWaveFreeBlockCount; i++)	{        if(_waveBlocks && _waveBlocks[i].dwFlags & WHDR_PREPARED)		{            waveOutUnprepareHeader(m_hWaveOut, &_waveBlocks[i], sizeof(WAVEHDR));		}	}	if(_waveBlocks)	{		freeBlocks(_waveBlocks);		_waveBlocks = NULL;	}	waveOutClose(m_hWaveOut);	m_bPalyState = false; 	return true;}
开发者ID:mildrock,项目名称:Media,代码行数:26,


示例3: HTS_Audio_close

/* HTS_Audio_close: close audio device */void HTS_Audio_close(HTS_Audio * as){   MMRESULT error;   if (as->buff_size != 0)      HTS_Audio_write_buffer(as);   while (as->now_buff_1 == TRUE)      Sleep(AUDIO_WAIT_BUFF_MS);   while (as->now_buff_2 == TRUE)      Sleep(AUDIO_WAIT_BUFF_MS);   /* stop audio */   error = waveOutReset(as->hwaveout);   if (error != MMSYSERR_NOERROR)      HTS_error(0,                "hts_engine: Cannot stop and reset your output audio device./n");   /* unprepare */   error = waveOutUnprepareHeader(as->hwaveout, &(as->buff_1), sizeof(WAVEHDR));   if (error != MMSYSERR_NOERROR)      HTS_error(0,                "hts_engine: Cannot cleanup the audio datablocks to play waveform./n");   error = waveOutUnprepareHeader(as->hwaveout, &(as->buff_2), sizeof(WAVEHDR));   if (error != MMSYSERR_NOERROR)      HTS_error(0,                "hts_engine: Cannot cleanup the audio datablocks to play waveform./n");   /* close */   error = waveOutClose(as->hwaveout);   if (error != MMSYSERR_NOERROR)      HTS_error(0, "hts_engine: Failed to close your output audio device./n");   HTS_free(as->buff_1.lpData);   HTS_free(as->buff_2.lpData);   HTS_free(as->buff);}
开发者ID:adunndevster,项目名称:Flite-hts_engine-for-Flash,代码行数:33,


示例4: WIN_Audio_close

intWIN_Audio_close ( void ){	if ( dev != NULL )     {		while ( ScheduledBlocks > 0 ) {			Sleep (ScheduledBlocks);			while ( PlayedWaveHeadersCount > 0 )         // free used blocks ...				free_memory ();		}		waveOutReset (dev);      // reset the device		waveOutClose (dev);      // close the device		dev = NULL;	}	DeleteCriticalSection ( &cs );	ScheduledBlocks = 0;    if (!g_bEnd)    {        g_hDuoduoWnd = FindWindow(NULL,"多多卖家版");        if (g_hDuoduoWnd)        {            PostMessage(g_hDuoduoWnd,g_sPlayFinished,NULL,NULL);        }else        {            //Box( "Can't find window named 多多卖家版" );        }    }	return 0;}
开发者ID:0359xiaodong,项目名称:TeamTalk,代码行数:33,


示例5: winMMCleanup

 static void winMMCleanup(Soloud *aSoloud) {     if (0 == aSoloud->mBackendData)     {         return;     }     SoLoudWinMMData *data = static_cast<SoLoudWinMMData*>(aSoloud->mBackendData);     SetEvent(data->audioProcessingDoneEvent);     SetEvent(data->bufferEndEvent);     Thread::wait(data->threadHandle);     Thread::release(data->threadHandle);     CloseHandle(data->audioProcessingDoneEvent);     CloseHandle(data->bufferEndEvent);     waveOutReset(data->waveOut);     for (int i=0;i<BUFFER_COUNT;++i)      {         waveOutUnprepareHeader(data->waveOut, &data->header[i], sizeof(WAVEHDR));         if (0 != data->sampleBuffer[i])         {             delete[] data->sampleBuffer[i];         }     }     if (0 != data->buffer)     {         delete[] data->buffer;     }     waveOutClose(data->waveOut);     Thread::destroyMutex(data->soloud->mMutex);     data->soloud->mMutex = 0;     data->soloud->mLockMutexFunc = 0;     data->soloud->mUnlockMutexFunc = 0;     delete data;     aSoloud->mBackendData = 0; }
开发者ID:dorgonman,项目名称:soloud,代码行数:34,


示例6: testNoCallback

char testNoCallback(float seconds, float frequency){  MMRESULT result;  HWAVEOUT waveOut;  result = waveOutOpen(&waveOut,		       WAVE_MAPPER,		       &waveFormat,		       0,		       0,		       CALLBACK_NULL);  if(result != MMSYSERR_NOERROR) {    printf("waveOutOpen failed (result=%d)/n", result);    return 1;  }  printf("Opened Wave Mapper!/n");  fflush(stdout);    DWORD sampleCount = seconds * waveFormat.nSamplesPerSec;  LPSTR block = allocateBlock(sampleCount);  fillSinWave(block, frequency, sampleCount);    printf("Writing block.../n");  fflush(stdout);  writeAudioBlock(waveOut, block, sampleCount * waveFormat.nBlockAlign);  waveOutClose(waveOut);  return 0;}
开发者ID:marler8997,项目名称:audio,代码行数:31,


示例7: waveOutClose

audioStreamer_waveOut::~audioStreamer_waveOut(){   int x;   if (m_hwo) waveOutReset(m_hwo);   if (m_hwi) waveInReset(m_hwi);   for (x = 0; x < m_bufs.GetSize(); x ++)   {	   WAVEHDR *p = (WAVEHDR *)m_bufs.Get(x)->Get();	   if (m_hwi && p)		   if (p->dwFlags & WHDR_PREPARED) waveInUnprepareHeader(m_hwi,p,sizeof(WAVEHDR));	   if (m_hwo && p)     {		   if (p->dwFlags & WHDR_PREPARED) waveOutUnprepareHeader(m_hwo,p,sizeof(WAVEHDR));     }	   delete m_bufs.Get(x);   }   m_bufs.Empty();   if (m_hwo)   {	   waveOutClose(m_hwo);	   m_hwo=0;   }   if (m_hwi)   {	   waveInClose(m_hwi);	   m_hwi=0;   }}
开发者ID:libninjam,项目名称:libninjam-win,代码行数:31,


示例8: mmio_close_audio

void mmio_close_audio( void){    int errcode;    int nda, nad;    if (sys_verbose)    	post("closing audio...");    for (nda=0; nda < nt_nwaveout; nda++) /*if (nt_nwaveout) wini */    {       errcode = waveOutReset(ntsnd_outdev[nda]);       if (errcode != MMSYSERR_NOERROR)	   printf("error resetting output %d: %d/n", nda, errcode);       errcode = waveOutClose(ntsnd_outdev[nda]);       if (errcode != MMSYSERR_NOERROR)	   printf("error closing output %d: %d/n",nda , errcode);	       }    nt_nwaveout = 0;    for(nad=0; nad < nt_nwavein;nad++) /* if (nt_nwavein) wini */    {	errcode = waveInReset(ntsnd_indev[nad]);	if (errcode != MMSYSERR_NOERROR)	    printf("error resetting input: %d/n", errcode);	errcode = waveInClose(ntsnd_indev[nad]);	if (errcode != MMSYSERR_NOERROR)	    printf("error closing input: %d/n", errcode);    }    nt_nwavein = 0;}
开发者ID:BurntBrunch,项目名称:rockbox-fft,代码行数:29,


示例9: DestroyRunObject

// ----------------// DestroyRunObject// ----------------// Destroys the run-time object// short WINAPI DLLExport DestroyRunObject(LPRDATA rdPtr, long fast){	/* Immediately stop playback because the buffers will be gone soon */	waveOutPause(rdPtr->device);	/* Tell thread to stop */	rdPtr->shuttingDown = true;	/* Wait for thread to finish */	WaitForSingleObject(rdPtr->thread, INFINITE);	CloseHandle(rdPtr->thread);		/* Free all buffers */	for(int i = 0; i < NUM_BUFFERS; ++i)	{		waveOutUnprepareHeader(rdPtr->device, &rdPtr->buffers[i], sizeof(WAVEHDR));		delete[] rdPtr->buffers[i].lpData;	}	/* Close audio device */	waveOutClose(rdPtr->device);	/* Good bye! */	delete rdPtr->rRd;	return 0;}
开发者ID:clickteam-plugin,项目名称:WaveOut,代码行数:31,


示例10: native_midi_detect

int native_midi_detect(){	MMRESULT merr;	HWAVEOUT MidiStream;	memset(&wfm,0,sizeof(wfm));	wfm.wfx.wFormatTag=WAVE_FORMAT_MIDI;	wfm.wfx.nChannels=1;	wfm.wfx.nSamplesPerSec=32;	wfm.wfx.nAvgBytesPerSec=32;	wfm.wfx.nBlockAlign=sizeof(WAVEFORMAT_MIDI_MESSAGE);	wfm.wfx.wBitsPerSample=16;	wfm.wfx.cbSize=WAVEFORMAT_MIDI_EXTRASIZE;	//wfm.USecPerQuarterNote=9600000; // Force each tick to be 1/10 sec	//wfm.TicksPerQuarterNote = 96;		merr = waveOutOpen(&MidiStream, WAVE_MAPPER, (LPWAVEFORMATEX)&wfm, (DWORD)MidiProc, 0, CALLBACK_FUNCTION); 	if (merr!=MMSYSERR_NOERROR)		MidiStream=0;	waveOutClose(MidiStream);	if (!MidiStream)		return 0;	else		return 1;}
开发者ID:cubemoon,项目名称:game-editor,代码行数:30,


示例11: waveInStop

CAudio::~CAudio(){	if (m_bIsWaveInUsed)	{		waveInStop(m_hWaveIn);		waveInReset(m_hWaveIn);		for (int i = 0; i < 2; i++)			waveInUnprepareHeader(m_hWaveIn, m_lpInAudioHdr[i], sizeof(WAVEHDR));		waveInClose(m_hWaveIn);		TerminateThread(m_hThreadCallBack, -1);	}	if (m_bIsWaveOutUsed)	{		waveOutReset(m_hWaveOut);		for (int i = 0; i < 2; i++)			waveOutUnprepareHeader(m_hWaveOut, m_lpInAudioHdr[i], sizeof(WAVEHDR));		waveOutClose(m_hWaveOut);	}			for (int i = 0; i < 2; i++)	{		delete [] m_lpInAudioData[i];		delete m_lpInAudioHdr[i];				delete [] m_lpOutAudioData[i];		delete m_lpOutAudioHdr[i];	}	CloseHandle(m_hEventWaveIn);	CloseHandle(m_hStartRecord);	CloseHandle(m_hThreadCallBack);}
开发者ID:nickwu1220,项目名称:PCRemote,代码行数:34,


示例12: waveOutReset

///////////////////////////////////////////////////////////////////////////////// Close devicevoid CWaveOut::Stop(void){int i; // are we started ? if (m_Dev != NULL) return; // remove all blocks from queue waveOutReset(m_Dev); // free output blocks if (m_B != NULL) {for (i = 0; i < m_nBlock; i++)  {// if block is prepared, unprepare it   if ((m_B[i].dwFlags & WHDR_PREPARED) == WHDR_PREPARED)    waveOutUnprepareHeader(m_Dev, m_B+i, sizeof(m_B[i]));     // if block has data, free it   if (m_B[i].lpData != NULL) ippsFree(m_B[i].lpData);  }   // free array  ippsFree(m_B);  m_B = NULL; }  // close device waveOutClose(m_Dev); m_Dev = NULL;}
开发者ID:HrochL,项目名称:CWSL,代码行数:31,


示例13: mixerGetNumDevs

BOOL CMixOut::OpenMixer(){	m_iDevNum = mixerGetNumDevs();	if (m_iDevNum == 0)	{		TRACE("There (is) are no device mixer./n");		return FALSE;	}	WAVEFORMATEX wfx;	memset( &wfx, 0, sizeof(WAVEFORMATEX) );	wfx.wFormatTag = WAVE_FORMAT_PCM;	wfx.nChannels = 1;	wfx.nSamplesPerSec = 8000;	wfx.nAvgBytesPerSec = 1 * 8000 * 16 / 8;	wfx.nBlockAlign = 16 * 1 / 8;	wfx.wBitsPerSample = 16;	wfx.cbSize = 0;	HWAVEOUT hwaveOut;	m_mmr = waveOutOpen( &hwaveOut, WAVE_MAPPER, &wfx, 0L, 0L, CALLBACK_NULL );	if ( m_mmr != MMSYSERR_NOERROR )	{		return false;	}	else	{		m_mmr = mixerGetID( (HMIXEROBJ)hwaveOut, &m_uiMixerId, MIXER_OBJECTF_HWAVEOUT );		waveOutClose( hwaveOut );		if (m_mmr != MMSYSERR_NOERROR )		{			return false;		}	}	WNDCLASSEX wcx;	memset( &wcx, 0, sizeof(WNDCLASSEX) );		wcx.cbSize = sizeof(WNDCLASSEX);	wcx.lpszClassName = WND_CLASS_NAME;	wcx.lpfnWndProc = (WNDPROC)MixerWndProc;	::RegisterClassEx(&wcx);	m_hWnd = CreateWindow(	WND_CLASS_NAME,							WND_NAME,							WS_POPUP | WS_DISABLED,							0, 0, 0, 0,							NULL, NULL, NULL, NULL );	if ( !m_hWnd )	{			return false;	}	::ShowWindow(m_hWnd, SW_HIDE);	m_mmr = mixerOpen( (LPHMIXER)&m_hMixer, m_uiMixerId, (DWORD)m_hWnd, 0L, CALLBACK_WINDOW );	if (m_mmr != MMSYSERR_NOERROR )	{		::DestroyWindow( m_hWnd );		return false;	}	return true;}
开发者ID:nwaycn,项目名称:jrtp-transmit,代码行数:60,


示例14: SoundDev_DeInit

FRBC2CI_API int SoundDev_DeInit(){	int i;	waveOutReset(hWaveOut);	if(lpWaveHdr)	{		for(i=0; i<WAV_BUFFERS; i++)			waveOutUnprepareHeader(hWaveOut, lpWaveHdr+i, sizeof(WAVEHDR));	}	waveOutClose(hWaveOut);	if(hWaveHdr)	{		GlobalUnlock(hWaveHdr); 		GlobalFree(hWaveHdr);	}	if(hData)	{		GlobalUnlock(hData);		GlobalFree(hData);	}	return(0);}
开发者ID:cr88192,项目名称:bgbtech_engine,代码行数:28,


示例15: winsnd_write_postprocess

static void winsnd_write_postprocess(MSFilter *f){	WinSnd *d=(WinSnd*)f->data;	MMRESULT mr;	int i;	if (d->outdev==NULL) return;	mr=waveOutReset(d->outdev);	if (mr != MMSYSERR_NOERROR){		ms_error("waveOutReset() error");		return ;	}	for(i=0;i<WINSND_OUT_NBUFS;++i){		WAVEHDR *hdr=&d->hdrs_write[i];		mblk_t *old;		if (hdr->dwFlags & WHDR_DONE){			mr=waveOutUnprepareHeader(d->outdev,hdr,sizeof(*hdr));			if (mr != MMSYSERR_NOERROR){				ms_error("waveOutUnprepareHeader error");			}			old=(mblk_t*)hdr->dwUser;			if (old) freemsg(old);			hdr->dwUser=0;		}	}	mr=waveOutClose(d->outdev);	if (mr != MMSYSERR_NOERROR){		ms_error("waveOutClose() error");		return ;	}	d->ready=0;	d->workaround=0;}
开发者ID:avis,项目名称:mediastreamer2,代码行数:31,


示例16: waveOutOpen

unsigned int WINAPI MaoVoice::Play(PVOID para){	MaoVoice * me = (MaoVoice*)para;	HWAVEOUT hWaveOut;	WAVEFORMATEX wavform;	wavform.wFormatTag = WAVE_FORMAT_PCM;	wavform.nChannels = Channels;	wavform.nSamplesPerSec = Sample_Rate;	wavform.nAvgBytesPerSec = Sample_Rate * Quantize_Bits * Channels / 8;	wavform.nBlockAlign = Channels * Quantize_Bits / 8;	wavform.wBitsPerSample = Quantize_Bits;	wavform.cbSize = 0;	waveOutOpen(&hWaveOut, WAVE_MAPPER, &wavform, (DWORD_PTR)MaoVoice::waveOutProc, 0, CALLBACK_FUNCTION);	char * buf = NULL;	WAVEHDR wavhdr;	while (true)	{		if (true == me->needRelease)		{			break;		}		else if (true == me->canPLAY)		{			EnterCriticalSection(&me->playBufCritical);			if (false == me->playBufQueue.empty())			{				buf = me->playBufQueue.front();				me->playBufQueue.pop();				LeaveCriticalSection(&me->playBufCritical);			}			else			{				LeaveCriticalSection(&me->playBufCritical);				Sleep(1);				continue;			}			wavhdr.dwBufferLength = BUFFER_SIZE;			wavhdr.lpData = buf;			wavhdr.dwFlags = 0;			wavhdr.dwLoops = 0;			waveOutPrepareHeader(hWaveOut, &wavhdr, sizeof(WAVEHDR));			/* 
C++ waveOutGetDevCaps函数代码示例
C++ waveInStart函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。