




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上南京工程學院實 驗 報 告課程名稱 多媒體編程基礎 實驗項目名稱 音頻和視頻 實驗學生班級 多媒體132 實驗學生姓名 滕超 學號 同組學生姓名 無 實驗時間 2016 年 5 月 26 日 實驗地點 信息樓A213 實驗5 音頻/視頻處理一、實驗目的:1理解Windows系統(tǒng)中音頻、視頻處理的方法。2理解MCI接口的概念。3了解音視頻處理技巧,以及實際應用方法4掌握實現(xiàn)音頻播放器和視頻播放器的常用方法。 二、實驗環(huán)境及開發(fā)工具:PC機、Windows 8.1操作系統(tǒng)、Visual C+ 2013三、實驗要求及內容:1)理解第9章教材例題及上課所講的參考例程。2)運用
2、學過的知識,在理解例題的基礎上自己編寫一個多媒體播放器應用程序,包括:一個音頻(MP3、wma)播放器和一個視頻播放器處理(avi、wmv、asf)程序,要求具有以下功能: 可以播放本機中的音視頻媒體文件文件; 音頻播放參照課堂提供的例子, 必須創(chuàng)建一個播放類來實現(xiàn) 視頻播放可以直接使用WMP控件,適當添加針對文件的操作功能。音頻設計流程圖:音頻界面設計如下:使用CPlayWave類/*PlayWave.h*/#pragma once#include mmsystem.hclass CPlayWave/定義保護保護成員protected:MCIDEVICEID m_DeviceID; /記錄波
3、形設備IDMCIDEVICEID m_ElementID; /記錄波形元素IDpublic:CPlayWave(void);CPlayWave(void);DWORD InitDevice(void);DWORD TeminalDevice(void);DWORD Play(HWND hWnd, LPCWSTR pFileName);DWORD Stop(void);DWORD Pause();DWORD Resume();/*PlayWave.cpp*/#include StdAfx.h#include PlayWave.hCPlayWave:CPlayWave(void)m_DeviceI
4、D = 0; /初始化設備IDm_ElementID = 0; /初始化元素IDInitDevice(); /調用InitDevice方法初始化設CPlayWave:CPlayWave(void)if (m_ElementID) /判斷波形元素是否為0Stop(); /停止波形元素if (m_DeviceID) /判斷波形設備是否為0TeminalDevice(); /停止波形設備DWORD CPlayWave:InitDevice(void)DWORD dwResult = 0; /定義一個整型變量if (m_DeviceID = 0) /如果設備ID為0MCI_OPEN_PARMS mci
5、InitParms; /定義打開參數(shù)mciInitParms.lpstrDeviceType = (LPWSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;dwResult = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID| MCI_WAIT, (DWORD)(LPVOID)&mciInitParms); /打開波形設備m_DeviceID = mciInitParms.wDeviceID;return dwResult;DWORD CPlayWave:TeminalDevice(void)DWORD
6、 dwResult = 0; /定義一個整型變量if (m_DeviceID) /判斷設備ID是否為0/關閉波形設備dwResult = mciSendCommand(m_DeviceID, MCI_CLOSE, NULL, NULL);m_DeviceID = 0; /將波形設備ID設置為0return dwResult;DWORD CPlayWave:Play(HWND hWnd, LPCWSTR pFileName)MCI_OPEN_PARMS mciOpenParms; /定義打開參數(shù)memset(&mciOpenParms, 0, sizeof(MCI_OPEN_PARMS); /初
7、始化參數(shù)mciOpenParms.lpstrElementName = pFileName; /設置文件名DWORD dwResult = 0; /定義整型變量dwResult = mciSendCommand(m_DeviceID, MCI_OPEN, MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpenParms); /打開波形元素if (!dwResult)m_ElementID = mciOpenParms.wDeviceID; /獲取波形元素IDMCI_PLAY_PARMS mciPlayParms; /定義播放參數(shù)mciPlayParms.dwCallb
8、ack = (DWORD)hWnd; /設置播放參數(shù)dwResult = mciSendCommand(m_ElementID, MCI_PLAY,MCI_NOTIFY, (DWORD)(LPVOID)&mciPlayParms); /播放wav文件return dwResult;DWORD CPlayWave:Stop(void)DWORD dwResult = 0; /定義一個整型變量if (m_ElementID) /判斷波形元素ID是否為0/關閉波形元素dwResult = mciSendCommand(m_ElementID, MCI_CLOSE, NULL, NULL);m_Ele
9、mentID = 0; /設置波形元素ID為0return dwResult;DWORD CPlayWave:Pause()mciSendCommand(m_ElementID, MCI_PAUSE, 0, NULL);return 0;DWORD CPlayWave:Resume()mciSendCommand(m_ElementID, MCI_RESUME, 0, NULL);return 0;/*+*/“添加”按鈕的事件處理void CMusicDlg:OnBnClickedAddlist()/ TODO: 在此添加控件通知處理程序代碼/m_List.ResetContent(); /清
10、空列表CFileDialog flDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT| OFN_ALLOWMULTISELECT, L音頻文件|*.wav;*.mp3;*.wma|, this); /定義一個問價打開對話框if (flDlg.DoModal() = IDOK) /判斷用戶是否按OK按鈕 POSITION pos = flDlg.GetStartPosition(); /獲取文件名列表的首位置while (pos != NULL) /利用循環(huán)遍歷文件名列表 m_List.AddString(flDlg.GetN
11、extPathName(pos); /將文件名添加的列表框控件中“播放”按鈕添加事件處理void CMusicDlg:OnLbnDblclkList1()/ TODO: 在此添加控件通知處理程序代碼int selIndex = m_List.GetCurSel(); /獲取當前選擇的列表項索引 if (selIndex != LB_ERR) /判斷是否有項目被選中/定義一個字符串對象CString str;/根據(jù)索引獲取當前項目的字符串m_List.GetText(selIndex, str);/停止播放wave.Stop();wave.TeminalDevice();/開始播放歌曲wave.
12、Play(m_hWnd, str);雙擊列表框播放音樂void CMusicDlg:OnLbnDblclkList1()/ TODO: 在此添加控件通知處理程序代碼int selIndex = m_List.GetCurSel(); /獲取當前選擇的列表項索引 if (selIndex != LB_ERR) /判斷是否有項目被選中/定義一個字符串對象CString str;/根據(jù)索引獲取當前項目的字符串m_List.GetText(selIndex, str);/停止播放wave.Stop();wave.TeminalDevice();/開始播放歌曲wave.Play(m_hWnd, str)
13、;“暫?!焙汀袄^續(xù)”事件處理void CMusicDlg:OnBnClickedBstopPlay()wave.Pause();is_stop = !is_stop;GetDlgItem(IDC_BSTOP_PLAY)-SetWindowText(L繼續(xù));if (is_stop)wave.Resume();GetDlgItem(IDC_BSTOP_PLAY)-SetWindowText(L暫停);視頻播放器設計流程圖:定義變量:CWMPPlayer4 m_play;CWMPControls m_mediacontrol; /控制按鈕關聯(lián) CWMPSettings m_mediasetting
14、; /設置按鈕關聯(lián) CWMPMedia m_media; /媒體 CProgressCtrl *m_progress; /進度條 “打開”按鈕事件處理void CVideoPlayer:OnBnClickedVideoopen()CString filename;CFileDialog dlg(TRUE, NULL, L*.*, OFN_FILEMUSTEXIST,L串流多媒體(*.asf) | *.asf |L音頻視頻交錯格式(*.avi) | *.avi |L即時播音系統(tǒng)(*.rm) | *.rm |L波音音頻設備(*.wav) | *.wav |L所有文件(*.*) | *.* |);i
15、f (IDOK = dlg.DoModal()filename = dlg.GetPathName();m_play.put_URL(filename); / 播放m_media = static_cast(m_play.newMedia(filename);m_progress-SetRange(0, (int)m_media.get_duration(); /媒體總長度 m_progress-SetPos(0);“播放”按鈕事件處理void CVideoPlayer:OnBnClickedVideoplay()m_mediacontrol.play();“暫停”按鈕事件處理void CVi
16、deoPlayer:OnBnClickedVideosuspend()m_mediacontrol.pause();“停止”按鈕事件處理void CVideoPlayer:OnBnClickedVideostop()m_mediacontrol.stop();“全屏”按鈕事件處理void CVideoPlayer:OnBnClickedfullscreen()m_play.put_fullScreen(TRUE);“音量-”按鈕事件處理void CVideoPlayer:OnBnClickedVideol()m_mediasetting.put_volume(m_mediasetting.ge
17、t_volume() - 10);“音量+”按鈕事件處理void CVideoPlayer:OnBnClickedVideor()m_mediasetting.put_volume(m_mediasetting.get_volume() + 10);“進度條”控件處理void CVideoPlayer:PlayStateChangeOcx1(long NewState)if (NewState = 3) /播放狀態(tài)時, 開啟定時器 SetTimer(1, 1000, NULL);else if (NewState = 1) /停止時, 關閉定時器, 進度條回0 KillTimer(1);els
18、eKillTimer(1);void CVideoPlayer:OnTimer(UINT_PTR nIDEvent)if (nIDEvent != 1)return;m_progress-SetPos(m_progress-GetPos() + 1);CDialogEx:OnTimer(nIDEvent);“快進”按鈕事件處理void CVideoPlayer:OnBnClickedBtnfront()m_mediacontrol.fastForward(); /快進 “快退”按鈕事件處理void CVideoPlayer:OnBnClickedBtnback()m_mediacontrol.fastReverse();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司圍墻修建合同范例
- 代理教師合同范例
- 2025年神經系統(tǒng)藥物項目發(fā)展計劃
- 外貿流程步驟
- 游戲營銷新紀元
- 優(yōu)化城市公交系統(tǒng)
- 英語在全球交流中的角色
- 第三屆高分子成型加工及其產業(yè)發(fā)展研討會會議手冊
- 音樂歷程探秘
- 動量觀點在電磁感應中的應用(原卷版)-2025屆高考物理
- 《藝術概論(專升本)》復習考試題庫(含答案)
- 安全周例會匯報模板、安全匯報模板
- 化學核心素養(yǎng)的課堂教學-基于核心素養(yǎng)的高中化學教學 課件
- DB31T 1137-2019 畜禽糞便生態(tài)還田技術規(guī)范
- 張居正改革-完整精講版課件
- excel-操作技巧培訓課件
- 腹膜透析的原理和應用講課課件
- 中北大學火炮概論終極版
- 2022年CAD快捷鍵-CAD常用快捷鍵命令大全
- 流感病人的護理ppt課件
評論
0/150
提交評論