freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

10多媒體應(yīng)用程序設(shè)計(jì)(已修改)

2025-02-26 14:54 本頁面
 

【正文】 Windows程序設(shè)計(jì) 何倩 桂電信息與通信學(xué)院 教材: Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì) (第二版)黃維通編著,清華大學(xué)出版社 參考書 : 1. 《 C++程序設(shè)計(jì)教程 》 ,錢能編著 , 清華大學(xué)出版社 2《 Visual C++程序設(shè)計(jì)-基礎(chǔ)與實(shí)例分析 》 ,朱晴婷編著 第 10講 多媒體應(yīng)用程序的設(shè)計(jì) 2 利用音頻函數(shù) 為了介紹多媒體程序的設(shè)計(jì),我們先介紹一個(gè)非常簡單的例子,希望讀者能夠通過這個(gè)簡單的例子,了解音頻文件的播放方法 3 一個(gè)簡單的應(yīng)用實(shí)例 【 例 121】 設(shè)計(jì)一個(gè)簡單的音頻播放程序,程序啟動(dòng)時(shí),播放 windows系動(dòng)啟動(dòng)時(shí)候的音樂 4 MCIStart;打開 ,在 ifndef _AFX_NO_AFXCMN_SUPPORT語句的上一行頂頭加入語句 include 與應(yīng)用程序鏈接起來 OnInitDialog()函數(shù)中的 return TRUE之前加上代碼: sndPlaySound(SystemStart,SND_ASYNC)。 幾個(gè)常用的音頻函數(shù) (1) MessageBeep()函數(shù) :用來播放系統(tǒng)提示音 (2) sndPlaySound()函數(shù) :播放 wav音頻 (3) PlaySound()函數(shù) :播放來自資源中的聲音 5 PlaySound() sndPlaySound() MessageBeep() 功能包含關(guān)系 用 MCI控制波形聲音的播放 MCIERROR mciSendCommand( MCIDEVICEID IDDevice, //接收命令消息的 MCI設(shè)備 ID UINT uMsg, //發(fā)送的命令消息 DWORD fdwCommand, //命令消息的標(biāo)志集 DWORD_PTR dwParam) //消息參數(shù)的結(jié)構(gòu)體地址 6 常用的 MCI設(shè)備消息 見教材表 125 7 在調(diào)用 MCI設(shè)備時(shí)可用 mciGetErrorString()檢測錯(cuò)誤,該函數(shù)的原型如下: BOOL mciGetErrorString( DWORD fdwError, //錯(cuò)誤代碼 LPTSTR lpszErrorText, //指向錯(cuò)誤內(nèi)容字串的指針 UINT cchErrorText //錯(cuò)誤內(nèi)容的緩沖區(qū)容量 ) 【 例 122】 編寫一個(gè)音頻播放器程序,可以選擇音頻文件,并控制其播放、暫停播放、暫停后的繼續(xù)播放以及停止播放的功能 8 IDC_OPEN_BUTTON IDC_CLOSE_BUTTON IDC_START_BUTTON IDC_PAUSE_BUTTON IDC_STOP_BUTTON IDC_EXIT_BUTTON 9 1. 將頭文件 ,將多媒體函數(shù)庫 project菜單中的seetings命令來與程序鏈接起來 CMCIPlayerDlg類上增加 Protected類型的成員變量,具體如下: BOOL m_PSign(作為判斷正在播放的標(biāo)識(shí)) BOOL m_ASign(作為判斷正在播放的標(biāo)識(shí))、 DWORD dwError(用來儲(chǔ)存錯(cuò)誤代碼)、 MCIDEVICEID m_MCIDeviceID( 用來儲(chǔ)存打開設(shè)備的 ID值 ) charszErrorBuf[MAXERRORLENGTH]( 用來儲(chǔ)存出錯(cuò)內(nèi)容) 10 BOOL CMCIPlayerDlg::OnInitDialog() { CDialog::OnInitDialog()。 … // TODO: Add extra initialization here m_PSign=FALSE。 //初始化正在播放標(biāo)識(shí) m_ASign=FALSE。 //初始化正在暫停標(biāo)識(shí) m_MCIDeviceID=0。 //初始化設(shè)備標(biāo)識(shí) return TRUE。 } void CMCIPlayerDlg::OnOpenButton() //打開一個(gè)文件 { CString filename。 //定義 CString類的 filename用來存儲(chǔ)文件名 CString fileext。 //定義 CString類的 fileext用來存儲(chǔ)文件擴(kuò)展名 MCI_OPEN_PARMS mciOpenParms。//定義結(jié)構(gòu)體變量用來存儲(chǔ)打開文件的信息和返回的設(shè)備標(biāo)識(shí)信息 DWORD dwError。 //定義 dwError用來儲(chǔ)存返回的錯(cuò)誤標(biāo)識(shí) static char szFilter[]=波形音頻文件 (*.wav)|*.wav|MIDI序列 (*.mid)|*.mid\0。 CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter)。 //通過打開按鈕時(shí)顯示的內(nèi)容 11 if (()==IDOK) { filename=()。 //獲取打開的文件名 fileext=()。 //獲取打開的文件擴(kuò)展名 if (m_PSign) //如果程序正在播放 , 則關(guān)閉 { dwError=mciSendCommand(m_MCIDeviceID,MCI_CLOSE,0,NULL)。 //關(guān)閉正在播放的聲音 if (dwError) //如果關(guān)閉不成功 , 則顯示出錯(cuò)的原因 {if(mciGetErrorString(dwError,(LPSTR)szErrorBuf,MAXERRORLENGTH)) MessageBox(szErrorBuf,MCI出錯(cuò) ,MB_ICONWARNING)。 else MessageBox(不明錯(cuò)誤標(biāo)識(shí) ,MCI出錯(cuò) ,MB_ICONWARNING)。 //給出相應(yīng)報(bào)告 return。 } } 12 //如果沒有聲音正在播放 , 則獲取打開文件的后輟 , 并根據(jù)后輟決定相應(yīng)的打開類型 if (!strcmp(wav,fileext)) //當(dāng)后輟為 wav時(shí) =waveaudio。 else if (!strcmp(mid,fileext))//當(dāng)后輟為 mid時(shí) =sequencer。 =filename。 //將打開的文件名存入 mciOpenParms結(jié)構(gòu)體中 dwError=mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT,(DWORD)(LPVOID)mciOpenParms)。 //發(fā)送打開文件命令 , MCI_OPEN_TYPE參數(shù)說明設(shè)備類型名包含在 mciOpenParms結(jié)構(gòu)體中 , //MCI_OPEN_ELEMENT參數(shù)說明要打開的文件名包含在mciOpenParams結(jié)構(gòu)體中 13 if (dwError)//如果打開不成功 , 則顯示出錯(cuò)的原因 {if (mciGetErrorString(dwError,(LPSTR)szErrorBuf,MAXERRORLENGTH)) MessageBox(szErrorBuf,MCI出錯(cuò) ,MB_ICONWARNING)。 else MessageBox(不明錯(cuò)誤標(biāo)識(shí) ,MCI出錯(cuò) ,MB_ICONWARNING)。 return。 } m_MCIDeviceID=。//將獲取的設(shè)備ID值賦給全局變量 m_MCIDeviceID m_PSign=FALSE。//設(shè)置正在播放標(biāo)識(shí)為 FALSE m_ASign=FALSE。//設(shè)置正在暫停標(biāo)識(shí)為 FALSE } } 14 15
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1