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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mciwave.cpp

?? VC++6開發指南的源代碼第24章-第25章
?? CPP
字號:
// MCIWave.cpp: implementation of the CMCIWave class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "WAVMCIDemo.h"
#include "MCIWave.h"

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

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

CMCIWave::CMCIWave()
{
	//進行狀態指示變量的初始化
	m_bPlaying = FALSE;
    m_bRecord = FALSE;
    m_bOpen = FALSE;
    m_wDeviceID = 0;
}

CMCIWave::~CMCIWave()
{
	Close();//關閉WAV文件
}
DWORD CMCIWave::Open(CString strFileName)
{
	if (m_bOpen)//如果文件已經打開
	{
		Close();//關閉該文件
	}
	DWORD dwOpenFlag;//打開標記
	MCI_OPEN_PARMS mciOpenParam;//MCI_OPEN_PARMS結構
	mciOpenParam.lpstrDeviceType = "WaveAudio";//MCI設備類型
	mciOpenParam.lpstrElementName = strFileName;//打開文件名
	//初始化MCI設備
	dwOpenFlag = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT|MCI_OPEN_TYPE, (DWORD)(LPVOID)&mciOpenParam);
	if (dwOpenFlag)//初始化失敗
		return dwOpenFlag;//返回錯誤代碼
	m_wDeviceID = mciOpenParam.wDeviceID;//設備ID
	m_bOpen = TRUE;
	dwOpenFlag = 0;
	MCI_SET_PARMS mciSetParam;
	mciSetParam.dwTimeFormat = MCI_FORMAT_MILLISECONDS;//時間參數設置為毫秒
	//改變時間控制設置
	dwOpenFlag = mciSendCommand(m_wDeviceID,MCI_SET,MCI_SET_TIME_FORMAT,(DWORD)(LPVOID)&mciSetParam);
	if (dwOpenFlag)//設置失敗
		return dwOpenFlag;//返回錯誤代碼
	return 0;
}

DWORD CMCIWave::Play()
{
	MCI_PLAY_PARMS mciPlayParam;
	DWORD dwPlayFlag;
	dwPlayFlag = mciSendCommand(m_wDeviceID, MCI_PLAY, NULL, (DWORD)(LPVOID)&mciPlayParam);//開始播放數據
	if (dwPlayFlag)//播放失敗
		return dwPlayFlag;//返回錯誤代碼
	else
	{
		m_bPlaying = TRUE;
		return 0;
	}
}

void CMCIWave::Stop()
{
	mciSendCommand(m_wDeviceID, MCI_STOP, NULL, NULL);//停止播放
}
DWORD CMCIWave::Record()
{
	if (m_bOpen)//如果有文件打開
		Close();//關閉文件
	DWORD dwRecordFlag;
	MCI_OPEN_PARMS mciOpenParam;
	mciOpenParam.lpstrDeviceType = " waveAudio ";
	mciOpenParam.lpstrElementName = NULL;
	//初始化MCI設備
	dwRecordFlag = mciSendCommand(NULL, MCI_OPEN,MCI_OPEN_ELEMENT | MCI_OPEN_TYPE | MCI_WAIT, (DWORD)(LPVOID)&mciOpenParam);
	if (dwRecordFlag)//初始化失敗
		return dwRecordFlag;//返回錯誤代碼
	m_wDeviceID = mciOpenParam.wDeviceID;
	MCI_RECORD_PARMS mciRecordParam;
	//開始記錄數據
	dwRecordFlag = mciSendCommand(m_wDeviceID, MCI_RECORD,MCI_RECORD_OVERWRITE, (DWORD)(LPVOID)&mciRecordParam);
	if (dwRecordFlag)//記錄數據失敗
		return dwRecordFlag;//返回錯誤代碼
	m_bRecord = TRUE;
	m_bOpen = TRUE;
	return 0;
}
DWORD CMCIWave::Save(CString strFileName)
{
    if (m_bRecord)//正在錄音
        return 0;//返回
	Stop();//停止
	MCI_SAVE_PARMS mciSaveParam;
	mciSaveParam.lpfilename = strFileName;
	//保存WAV數據到文件
	DWORD dwSaveFlag = mciSendCommand(m_wDeviceID, MCI_SAVE,MCI_SAVE_FILE | MCI_WAIT, (DWORD)(LPVOID)&mciSaveParam);
	if (dwSaveFlag)//保存失敗
		return dwSaveFlag;//返回錯誤代碼
	m_bRecord = FALSE;
	return 0;
}
DWORD CMCIWave::Close()
{
	if (m_wDeviceID)//有MCI設備在工作
	{
		DWORD dwCloseFlag;
		mciSendCommand(m_wDeviceID, MCI_STOP, MCI_WAIT, NULL);//停止工作
		dwCloseFlag = mciSendCommand(m_wDeviceID, MCI_CLOSE, NULL, NULL);//關閉設備
		if (dwCloseFlag)
		{
			AfxMessageBox("關閉時出現錯誤");
			return dwCloseFlag;
		}
	}
	//設置狀態變量
	m_bRecord = FALSE;
	m_bOpen = FALSE;
	m_bPlaying = FALSE;
	m_wDeviceID = NULL;
	return 0;
}
DWORD CMCIWave::GetSampleRate()
{
	MCI_STATUS_PARMS mciStatusParam;
	mciStatusParam.dwItem = MCI_WAVE_STATUS_SAMPLESPERSEC;//采樣頻率
	//MCI設備的狀態信息(采樣頻率)
	DWORD dwStatusFlag = mciSendCommand(m_wDeviceID, MCI_STATUS,MCI_WAIT | MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);
	if (dwStatusFlag)
		return dwStatusFlag;//返回錯誤代碼
	else
		return mciStatusParam.dwReturn;//返回采樣頻率
}
DWORD CMCIWave::GetChannel()
{
	MCI_STATUS_PARMS mciStatusParam;
	mciStatusParam.dwItem = MCI_WAVE_STATUS_CHANNELS;//聲道數
	//MCI設備的狀態信息(聲道數)
	DWORD dwStatusFlag = mciSendCommand(m_wDeviceID, MCI_STATUS,MCI_WAIT | MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);
	if (dwStatusFlag)
		return dwStatusFlag;
	else
		return mciStatusParam.dwReturn;//返回聲道數
}
DWORD CMCIWave::GetBitLength()
{
	MCI_STATUS_PARMS mciStatusParam;
	mciStatusParam.dwItem = MCI_WAVE_STATUS_BITSPERSAMPLE;//聲音位長
	//MCI設備的狀態信息(聲音位長)
	DWORD dwStatusFlag = mciSendCommand(m_wDeviceID, MCI_STATUS,MCI_WAIT|MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);
	if (dwStatusFlag)
		return dwStatusFlag;
	else
		return mciStatusParam.dwReturn;//返回位長
}
DWORD CMCIWave::GetWaveLength()
{
	MCI_STATUS_PARMS mciStatusParam;
	mciStatusParam.dwItem = MCI_STATUS_LENGTH;//音頻長度
	//返回MCI設備的狀態信息(音頻長度)
	DWORD dwStatusFlag = mciSendCommand(m_wDeviceID, MCI_STATUS,MCI_WAIT | MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);
	if (dwStatusFlag)
		return dwStatusFlag;
	else
		return mciStatusParam.dwReturn;//返回音頻長度
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品电影院| 久久影院电视剧免费观看| 丁香婷婷综合五月| 国产一区二区不卡在线| 国产精一区二区三区| 国产又黄又大久久| 国产mv日韩mv欧美| 成人午夜av电影| 一本久久综合亚洲鲁鲁五月天| 91日韩一区二区三区| 欧美影院精品一区| 欧美美女网站色| 欧美xxxx在线观看| 久久久综合视频| 亚洲欧洲av在线| 一区二区欧美国产| 日韩av在线免费观看不卡| 美国毛片一区二区三区| 国产精一区二区三区| 不卡视频一二三四| 在线观看免费成人| 欧美大片日本大片免费观看| 久久久99精品久久| 亚洲品质自拍视频网站| 日日噜噜夜夜狠狠视频欧美人| 日韩精品欧美精品| 国产综合色在线视频区| 99国产精品一区| 欧美精品久久久久久久多人混战 | 午夜私人影院久久久久| 青青青伊人色综合久久| 国产精品一二一区| 91女神在线视频| 91精选在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久精品一二三| 亚洲女子a中天字幕| 日韩av电影免费观看高清完整版 | 国产精品夫妻自拍| 视频一区视频二区中文字幕| 国产精品亚洲а∨天堂免在线| 色诱视频网站一区| 久久蜜臀中文字幕| 天天色图综合网| 91猫先生在线| 欧美精品一区二区三区在线播放| 中文字幕中文字幕在线一区 | 国产欧美精品一区二区色综合朱莉| 自拍偷拍国产精品| 精品一区二区免费在线观看| 色婷婷综合激情| 日本一区二区三区在线观看| 蜜芽一区二区三区| 日本丶国产丶欧美色综合| 久久蜜桃av一区二区天堂| 午夜精品久久久| 91香蕉国产在线观看软件| 精品成人在线观看| 天天av天天翘天天综合网色鬼国产| 成人av午夜电影| 久久亚洲综合色| 精品一区中文字幕| 欧美一区二区精品久久911| 一区二区三区中文字幕电影| 成人av电影在线网| 国产精品久久久久婷婷二区次| 麻豆精品一区二区三区| 日韩一区二区三区免费看| 午夜欧美电影在线观看| 欧美日韩国产综合久久| 亚洲女与黑人做爰| 日本精品一区二区三区高清| 亚洲少妇中出一区| 色综合天天视频在线观看| 久久久不卡影院| 成人精品视频网站| 1024精品合集| 色婷婷综合在线| 一区二区三区鲁丝不卡| 91电影在线观看| 性做久久久久久免费观看| 欧美高清hd18日本| 国产主播一区二区| 久久久影院官网| 丁香啪啪综合成人亚洲小说| 国产亲近乱来精品视频| 成人av在线播放网址| 亚洲精品老司机| 欧美日韩一区三区四区| 三级成人在线视频| 久久网站最新地址| 成人动漫精品一区二区| 亚洲综合在线免费观看| 91精品国产91久久久久久一区二区 | 成人黄色电影在线 | 亚洲激情综合网| 欧美色图天堂网| 日韩av电影免费观看高清完整版 | 久久超级碰视频| 国产精品福利一区二区| 欧美日韩视频在线观看一区二区三区| 天天综合天天做天天综合| 精品不卡在线视频| 成人激情免费电影网址| 亚洲成人av福利| 26uuu久久综合| 色综合色综合色综合色综合色综合| 亚洲国产精品一区二区久久恐怖片| 91精选在线观看| 波多野结衣一区二区三区| 精品一区二区三区免费毛片爱| 国产日韩欧美电影| 欧美日韩亚洲国产综合| 国产美女一区二区| 亚洲图片欧美色图| 日本一区二区电影| 欧美一级欧美三级| 91蜜桃在线免费视频| 开心九九激情九九欧美日韩精美视频电影| 久久免费看少妇高潮| 欧美日韩国产综合一区二区| 国产成人免费av在线| 天堂蜜桃91精品| 1024国产精品| 国产亚洲精品资源在线26u| 欧美美女激情18p| 99国产精品国产精品毛片| 另类小说图片综合网| 一区二区三区四区在线免费观看| 久久亚洲私人国产精品va媚药| 91久久香蕉国产日韩欧美9色| 精品一区二区三区不卡| 亚洲成a人v欧美综合天堂下载| 亚洲日本在线天堂| 亚洲国产精品激情在线观看| 日韩精品一区二| 日韩视频免费观看高清完整版 | 欧美伊人久久大香线蕉综合69| 高清视频一区二区| 极品少妇xxxx精品少妇偷拍| 亚洲成人免费观看| 亚洲午夜一区二区| 亚洲精品日韩综合观看成人91| 国产精品电影院| 中文字幕成人网| 欧美国产日韩亚洲一区| 久久精品男人天堂av| 欧美刺激午夜性久久久久久久| 欧美日韩免费一区二区三区 | 美女被吸乳得到大胸91| 日韩精品亚洲一区| 婷婷夜色潮精品综合在线| 日韩黄色免费网站| 蜜臀av一区二区在线观看| 伦理电影国产精品| 国内成人自拍视频| 国产剧情av麻豆香蕉精品| 国产99久久久国产精品潘金网站| 狠狠色狠狠色合久久伊人| 国产精品1区2区| 91网站黄www| 色8久久精品久久久久久蜜| 欧美日韩在线电影| 欧美久久久久久久久中文字幕| 欧美精品自拍偷拍| 精品少妇一区二区三区日产乱码| 日韩欧美国产系列| 久久精品亚洲精品国产欧美| 国产三级欧美三级日产三级99 | 色天天综合久久久久综合片| 99精品偷自拍| 欧美少妇bbb| 精品国产凹凸成av人网站| 国产日韩欧美在线一区| 一区二区三区日韩精品视频| 午夜电影一区二区三区| 狠狠色丁香久久婷婷综合_中| 成人小视频在线观看| 一本到不卡精品视频在线观看 | 国产亚洲欧美激情| 一区二区三区四区乱视频| 日韩av一级电影| 成人一二三区视频| 欧美日韩综合在线免费观看| 精品国产第一区二区三区观看体验| 中文字幕不卡一区| 亚洲成人久久影院| 国产激情视频一区二区三区欧美| 成人国产精品免费观看| 欧美人妖巨大在线| 欧美韩国日本综合| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产99久久久国产精品潘金| 91国偷自产一区二区开放时间| 日韩精品一区二区三区在线播放| 国产精品人成在线观看免费 | 久久在线观看免费| 亚洲狠狠爱一区二区三区| 丁香另类激情小说| 日韩女优视频免费观看|