亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sound.cpp

?? vc++網(wǎng)絡(luò)編程教程的源碼。可能對(duì)使用vc網(wǎng)絡(luò)編程的有用。
?? CPP
字號(hào):
// Sound.cpp: implementation of the CSound class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Example2_ChatRoom.h"
#include "Sound.h"
#include "Example2_ChatRoomDlg.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSound::CSound()
{

}

CSound::~CSound()
{
	waveInClose(m_hWaveIn); //關(guān)閉錄音設(shè)備
	waveOutClose(m_hWaveOut); //關(guān)閉錄音設(shè)備
}
void CSound::Init(CExample2_ChatRoomDlg *dlg)
{
	int result;
	m_dlg=dlg;
	if(waveInGetNumDevs()==0)
	{
		AfxMessageBox("There is no sound input device");
	}
	if(waveOutGetNumDevs()==0)
	{
		AfxMessageBox("There is no sound output device");
	}
	m_soundFormat.wFormatTag=WAVE_FORMAT_PCM;
	m_soundFormat.nChannels=1;
	m_soundFormat.nSamplesPerSec=8000;
	m_soundFormat.nAvgBytesPerSec=16000;
	m_soundFormat.nBlockAlign=2;
	m_soundFormat.cbSize=0;
	m_soundFormat.wBitsPerSample=16;     //指定錄音格式

	int  res=waveInOpen(&m_hWaveIn,WAVE_MAPPER, &m_soundFormat, (DWORD)m_dlg->m_hWnd,0L,CALLBACK_WINDOW); //打開(kāi)錄音設(shè)備
	if(res!= MMSYSERR_NOERROR)
	{
		AfxMessageBox("Error in waveInOpen function");
		return ;
	}
	res=waveOutOpen(&m_hWaveOut,WAVE_MAPPER, &m_soundFormat, (DWORD)m_dlg->m_hWnd,0L,CALLBACK_WINDOW); //打開(kāi)錄音設(shè)備
	if(res!= MMSYSERR_NOERROR)
	{
		AfxMessageBox("Error in waveOutOpen function");
		return ;
	}
	//in
	m_pWaveHdrIn[0].lpData=m_cBufferIn;
	m_pWaveHdrIn[0].dwBufferLength=MAX_BUFFER_SIZE;
	m_pWaveHdrIn[0].dwBytesRecorded=0;
	m_pWaveHdrIn[0].dwFlags=0;

	result=waveInPrepareHeader(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR)); //準(zhǔn)備內(nèi)存塊錄音
    if  (result!= MMSYSERR_NOERROR) 
    {
        AfxMessageBox(_T("Cannot InPrepareHeader !"));
        return;
    };

	result=waveInAddBuffer(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR)); //增加內(nèi)存塊
    if  (result!= MMSYSERR_NOERROR) 
    {
        AfxMessageBox(_T("Cannot InAddBuffer !"));
        return;
    };

	//out
	m_pWaveHdrOut[0].lpData=m_cBufferOut;
	m_pWaveHdrOut[0].dwBufferLength=MAX_BUFFER_SIZE;
	m_pWaveHdrOut[0].dwBytesRecorded=0;
	m_pWaveHdrOut[0].dwFlags=0;

	waveOutPrepareHeader(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR)); //準(zhǔn)備內(nèi)存塊錄音
	waveOutWrite(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR));
}

void CSound::Record()
{
	waveInStart(m_hWaveIn);//開(kāi)始錄音
}

void CSound::Play()
{
	memcpy(m_cBufferOut,m_cBufferIn,MAX_BUFFER_SIZE);
}

void CSound::StopRecord()
{
	waveInStop(m_hWaveIn); //停止錄音
	waveInReset(m_hWaveIn); //清空內(nèi)存塊
}

void CSound::FreeRecordBuffer()
{
	int result=waveInUnprepareHeader(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR));
    if  (result!= MMSYSERR_NOERROR) 
    {
        AfxMessageBox(_T("Cannot UnInPrepareHeader !"));
        return;
    };	//in

	m_pWaveHdrIn[0].lpData=m_cBufferIn;
	m_pWaveHdrIn[0].dwBufferLength=MAX_BUFFER_SIZE;
	m_pWaveHdrIn[0].dwBytesRecorded=0;
	m_pWaveHdrIn[0].dwFlags=0;

	result=waveInPrepareHeader(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR)); //準(zhǔn)備內(nèi)存塊錄音
    if  (result!= MMSYSERR_NOERROR) 
    {
        AfxMessageBox(_T("Cannot InPrepareHeader !"));
        return;
    };	//in
	result=waveInAddBuffer(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR)); //增加內(nèi)存塊
    if  (result!= MMSYSERR_NOERROR) 
    {
        AfxMessageBox(_T("Cannot InAddBuffer !"));
        return;
    };	//in
}
void CSound::FreePlayBuffer()
{

	static bool once=true;
	int result;
	
	result=waveOutUnprepareHeader(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR));
 /*   
	if  (result!= MMSYSERR_NOERROR) 
    {
		if(once)
		{
			char  errinfor[100];
			waveOutGetErrorText(result,errinfor,100);
			AfxMessageBox(_T("Cannot UnOutPrepareHeader !"));
			AfxMessageBox(errinfor);
			once=false;
		}
        return;
    };	//out		//這個(gè)地方太怪了,老是返回錯(cuò)誤,所以我干脆把它給注銷(xiāo)掉,居然能
	//聽(tīng)出聲音,^_^
*/	
	//	waveOutReset(m_hWaveOut); //清空內(nèi)存塊

	m_pWaveHdrOut[0].lpData=m_cBufferOut;
	m_pWaveHdrOut[0].dwBufferLength=MAX_BUFFER_SIZE;
	m_pWaveHdrOut[0].dwBytesRecorded=0;
	m_pWaveHdrOut[0].dwFlags=0;

	result=waveOutPrepareHeader(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR)); //準(zhǔn)備內(nèi)存塊錄音
    if  (result!= MMSYSERR_NOERROR) 
    {
        AfxMessageBox(_T("Cannot OutPrepareHeader !"));
        return;
    };	//out
	result=waveOutWrite(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR)); //增加內(nèi)存塊
    if  (result!= MMSYSERR_NOERROR) 
    {
        AfxMessageBox(_T("Cannot OutWrite !"));
        return;
    };	//out
}
void CSound::InBufferZero()
{
	int i;
	for(i=0;i<MAX_BUFFER_SIZE;i++)
	{
		m_cBufferIn[i]=0;
	}
}

void CSound::OutBufferZero()
{
	int i;
	for(i=0;i<MAX_BUFFER_SIZE;i++)
	{
		m_cBufferOut[i]=0;
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级免费观看| 日本福利一区二区| 亚洲精品一区二区三区99| 蜜乳av一区二区三区| 欧美挠脚心视频网站| 日韩黄色免费电影| 日韩视频免费观看高清在线视频| 欧美aaaaaa午夜精品| 精品av综合导航| 国产91丝袜在线18| 日韩一区在线播放| 欧美老女人第四色| 国产在线精品一区二区| 国产精品午夜在线| 91高清视频免费看| 麻豆久久久久久久| 欧美激情综合在线| 欧美亚洲动漫精品| 精品一区二区三区影院在线午夜 | 2020国产精品久久精品美国| 国产成人精品一区二| 亚洲免费在线观看| 日韩亚洲欧美综合| 成人国产在线观看| 视频在线观看一区| 久久精品水蜜桃av综合天堂| 91无套直看片红桃| 看片网站欧美日韩| ...中文天堂在线一区| 欧美裸体一区二区三区| 国产伦精品一区二区三区在线观看| 国产精品久久久久天堂| 欧美精品色综合| 成人综合在线视频| 天堂久久久久va久久久久| 久久精品视频免费| 欧美日韩亚洲另类| 成人激情图片网| 日本成人中文字幕| 亚洲精品视频在线看| 日韩欧美区一区二| 欧美在线短视频| 国产精品77777竹菊影视小说| 亚洲国产综合人成综合网站| 久久久精品国产免费观看同学| 欧美性猛交xxxx乱大交退制版 | 日韩欧美的一区二区| a在线欧美一区| 久久99久久99| 亚洲综合清纯丝袜自拍| 国产婷婷色一区二区三区 | 日韩一区二区免费视频| 99精品欧美一区| 国产成人精品影视| 久久99精品国产91久久来源| 亚洲h在线观看| 亚洲色图.com| 国产精品区一区二区三| 欧美哺乳videos| 欧美一区二区日韩| 欧美日韩一区不卡| 97se亚洲国产综合自在线不卡| 精品午夜一区二区三区在线观看| 午夜国产精品一区| 亚洲视频在线一区| 国产精品看片你懂得| 国产欧美一区二区精品秋霞影院| 日韩午夜精品电影| 欧美日韩aaa| 欧美日韩精品一区二区在线播放| aa级大片欧美| 成人丝袜高跟foot| 成人综合婷婷国产精品久久| 国产一区二区精品在线观看| 久久成人av少妇免费| 免费观看在线综合| 丝袜亚洲另类欧美综合| 午夜精品久久久久| 亚洲v中文字幕| 亚洲国产美女搞黄色| 亚洲一区中文日韩| 亚洲动漫第一页| 午夜久久久久久| 日韩一区精品字幕| 美国三级日本三级久久99| 亚洲妇熟xx妇色黄| 亚洲成人先锋电影| 日本中文字幕一区二区有限公司| 日韩avvvv在线播放| 老司机精品视频导航| 久久99久久99精品免视看婷婷| 国产一区二区在线视频| 国产精品香蕉一区二区三区| 国产成人在线免费观看| www.亚洲国产| 在线观看免费亚洲| 91精品国产一区二区| 精品第一国产综合精品aⅴ| 国产丝袜欧美中文另类| 综合久久综合久久| 亚洲6080在线| 国产在线一区观看| 成人深夜福利app| 在线观看一区不卡| 欧美一区二区免费| 欧美国产精品中文字幕| 亚洲猫色日本管| 日韩电影在线一区二区三区| 国产精品一区二区久久不卡| k8久久久一区二区三区| 欧美日韩久久久| 欧美成人猛片aaaaaaa| 中文在线一区二区| 亚洲一区二区三区国产| 韩国精品免费视频| 色八戒一区二区三区| 欧美一级日韩一级| 国产精品久久久久婷婷| 日韩不卡一二三区| 成人免费av网站| 在线成人av网站| 亚洲国产精品高清| 舔着乳尖日韩一区| 国产成人免费在线观看| 欧美日韩精品一区二区三区蜜桃| 久久久久久久综合狠狠综合| 亚洲图片一区二区| 国产成人av电影在线| 3atv在线一区二区三区| 国产精品三级av在线播放| 日本午夜一区二区| 不卡的av网站| 26uuu欧美| 午夜电影一区二区三区| 91在线精品一区二区| 日韩欧美国产系列| 亚洲一区二区三区四区在线免费观看| 奇米色一区二区三区四区| 91美女精品福利| 久久午夜老司机| 丝袜亚洲另类欧美| 91久久精品国产91性色tv| 久久久.com| 久久99精品视频| 欧美久久久久久蜜桃| 亚洲免费在线播放| 国产成人精品免费在线| 日韩精品一区二区三区视频在线观看 | 99精品视频一区二区三区| 26uuu精品一区二区| 日韩福利视频导航| 欧美在线免费视屏| 亚洲美女免费视频| 91视频www| 亚洲日本在线观看| 国产 日韩 欧美大片| 欧美精品一区二区在线播放| 日韩精品电影一区亚洲| 欧洲色大大久久| 一级精品视频在线观看宜春院| 福利一区二区在线观看| 精品国产123| 久久不见久久见免费视频1| 欧美精品aⅴ在线视频| 午夜精品一区在线观看| 在线观看91视频| 亚洲综合激情另类小说区| 91在线小视频| 国产精品自产自拍| 日韩一级片在线观看| 香蕉加勒比综合久久| 欧美喷水一区二区| 婷婷丁香久久五月婷婷| 欧美情侣在线播放| 蜜桃久久久久久| 欧美成人精品3d动漫h| 免费在线观看视频一区| 日韩欧美在线1卡| 蜜臀久久99精品久久久久宅男| 欧美不卡视频一区| 国产成人啪免费观看软件| 国产精品麻豆视频| 91搞黄在线观看| 日日摸夜夜添夜夜添亚洲女人| 91精品综合久久久久久| 久久精品999| 国产片一区二区| 91黄色激情网站| 日本中文字幕一区二区有限公司| 91精品视频网| 国产乱人伦偷精品视频免下载| 久久精品这里都是精品| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 九九国产精品视频| 欧美韩国日本不卡| 91蜜桃免费观看视频| 午夜免费久久看| 久久久99精品久久| 国产精品久久久久影院老司 | 日本成人在线视频网站|