多媒體播放器設(shè)計_第1頁
多媒體播放器設(shè)計_第2頁
多媒體播放器設(shè)計_第3頁
多媒體播放器設(shè)計_第4頁
多媒體播放器設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

xxxxx 學(xué)院學(xué)院 本科畢業(yè)設(shè)計(論文)本科畢業(yè)設(shè)計(論文) 題題 目:目: 多媒體播放器設(shè)計多媒體播放器設(shè)計 學(xué)生姓名:學(xué)生姓名: 學(xué)號:學(xué)號: 系(部):系(部): 數(shù)學(xué)與計算機科學(xué)系數(shù)學(xué)與計算機科學(xué)系 專業(yè):專業(yè):計算機科學(xué)與技術(shù)計算機科學(xué)與技術(shù) 入學(xué)時間:入學(xué)時間: 201 年年 月月 導(dǎo)師姓名:導(dǎo)師姓名: 職稱職稱/ /學(xué)位:學(xué)位: 教授教授 導(dǎo)師所在單位:導(dǎo)師所在單位: 多媒體播放器設(shè)計多媒體播放器設(shè)計 摘摘 要要 本文主要是開發(fā)了一款簡單的多媒體播放器。可以播放多種格式的音頻、視頻文件,該播放器實 現(xiàn)了的基本功能包括:音頻視頻文件的打開、添加到菜單、媒體的播放、音量大小的調(diào)節(jié)、播放時間 的拖動、暫停播放、停止等。使之成為一款簡易的媒體播放設(shè)備,能夠完美的播放市面上大多數(shù)的音 頻、視頻文件。在畢業(yè)設(shè)計中,系統(tǒng)開發(fā)平臺為 Windows XP 操作系統(tǒng),程序設(shè)計環(huán)境采用 Visual Studio 2010。程序通過調(diào)試運行,初步實現(xiàn)了設(shè)計目標(biāo),本程序是基于 MFC 集成開發(fā)環(huán)境,利用 directshow sdk 實現(xiàn)媒體播放的功能的,除了基本的播放控制外,還具有全屏播放、靜音等實用功能。 關(guān)鍵詞:多媒體;播放器;關(guān)鍵詞:多媒體;播放器;directshow sdk The Design and Implementation of Multimedia Player Abstract This article is developed a simple multimedia player. It can play multiple formats of audio,video files, The players realize the basic functions include that open the Audio and video files, addto the menu, and media playback, adjust the volume size, play time, drag, pause, stop and so on.Making it a simple media player device, most audio or video files in the market can be played perfectly by this media player. In the Graduation, The System Development Platform is Windows XP, The Programming Environment is Visual Studio2010.Program by commissioning,Initial design goals achieved, the program is based on MFC.Integrated Development Environment. Using the directshow sdk control to achieve the functions of media player. In addition to the basic playback controls, It also has many other utility functions, such as playing Full Screen,Mute and so on. Keywords: multimedia; player;directshow sdk 目目 錄錄 第一章第一章 緒緒 論論 .1 1 1.11.1 引言引言 .1 1 1.21.2 系統(tǒng)設(shè)計的目的和意義系統(tǒng)設(shè)計的目的和意義 .1 1 1.31.3 研究背景研究背景 .2 2 1.41.4 論文主要研究內(nèi)容及論文結(jié)構(gòu)安排論文主要研究內(nèi)容及論文結(jié)構(gòu)安排.4 4 第二章第二章 開發(fā)平臺介紹和軟件的初步設(shè)計開發(fā)平臺介紹和軟件的初步設(shè)計 .5 5 2.12.1 開發(fā)平臺的介紹開發(fā)平臺的介紹 .5 5 2.22.2 軟件的需求分析和模塊設(shè)計軟件的需求分析和模塊設(shè)計 .5 5 .1 軟件的需求分析軟件的需求分析 .5 5 .2 軟件的模塊設(shè)計軟件的模塊設(shè)計.6 6 第三章第三章 多媒體播放器軟件設(shè)計多媒體播放器軟件設(shè)計 .7 7 3.13.1 開發(fā)環(huán)境配置開發(fā)環(huán)境配置 .7 7 3.23.2 實現(xiàn)實現(xiàn) GRAPHEDITGRAPHEDIT 模擬模擬 .8 8 3.33.3 DIRECTSHOWDIRECTSHOW 接口實現(xiàn)函數(shù)說明接口實現(xiàn)函數(shù)說明 .8 8 3.43.4 模塊實現(xiàn)函數(shù)說明模塊實現(xiàn)函數(shù)說明 .9 9 3.53.5 主要變量聲明主要變量聲明 .1010 3.63.6 設(shè)計多媒體播放器的界面設(shè)計多媒體播放器的界面 .1111 3.73.7 播放器模塊設(shè)計播放器模塊設(shè)計 .1111 第四章第四章 程序?qū)崿F(xiàn)結(jié)果程序?qū)崿F(xiàn)結(jié)果 .1818 4.14.1 程序運行結(jié)果演示程序運行結(jié)果演示 .1818 結(jié)束結(jié)束語語: .1919 參考參考文文獻獻 .2020 致致 謝謝 .2121 多媒體播放器設(shè)計多媒體播放器設(shè)計 第一章 緒緒 論論 1.11.1 引言引言 多媒體就是多重媒體的意思,可以理解為直接作用于人感官的文字、圖形、 圖像、動畫、聲音和視頻等各種媒體的統(tǒng)稱,即多種信息載體的表現(xiàn)形式和傳 遞方式。我們所提到的多媒體技術(shù),就是利用電腦把文字、圖形、影象、動畫、 聲音及視頻等媒體信息都數(shù)位化,并將其整合在一定的交互式界面上,使電腦 具有交互展示不同媒體形態(tài)的能力。它極大的改變了人們獲取信息的傳統(tǒng)方法, 符合人們在信息時代的閱讀方式。 在當(dāng)今信息社會,以多媒體為特征的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展及應(yīng)用對人 類社會產(chǎn)生的影響和作用愈來愈明顯,愈來愈重要。多媒體能改變信息的包裝, 實現(xiàn)知識信息數(shù)字化,為人們獲得知識信息提供極大的方便和無窮的樂趣。友善 的人機界面、多種多樣的多媒體教學(xué)軟件、誘人的電子游藝節(jié)目、身臨其境的 多媒體導(dǎo)購系統(tǒng)、五花八門的信息家電和高效方便的網(wǎng)上查詢等等,無不滲透著 多媒體的作用,它引導(dǎo)人們進入了一個有聲有色的世界。同時,多媒體的發(fā)展和 應(yīng)用,極大地推動了各行各業(yè)的相互滲透和飛速發(fā)展,大大改變了人類社會的工 作環(huán)境和生活方式??珊敛豢鋸埖卣f,多媒體產(chǎn)業(yè)的形成和發(fā)展,不僅引起了計 算機工業(yè)的一次革命,也正在深刻地影響人類社會發(fā)生巨大的變革。 多媒體技術(shù)的發(fā)展在很大程度上依靠于多媒體軟件開發(fā)的水平。目前,不管 是支撐多媒體系統(tǒng)的系統(tǒng)軟件,還是管理和開發(fā)軟件,以及多媒體的應(yīng)用軟件都 在能力和數(shù)量上還難以滿足多媒體飛速發(fā)展的需要。特別是多媒體應(yīng)用軟件的 缺乏一直是制約多媒體產(chǎn)業(yè)發(fā)展的瓶頸問題,因此己成為多媒體研究和開發(fā)的關(guān) 鍵問題。如何制作和設(shè)計出大量高質(zhì)量的多媒體應(yīng)用軟件是計算機從業(yè)人員所 面臨的迫切課題,也是廣大人民群眾所關(guān)心的事情。多媒體播放器的設(shè)計是一門 集計算機技術(shù)和數(shù)字多媒體技術(shù)于一體的綜合設(shè)計。隨著中國計算機技術(shù)、寬 帶網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的人開始重視多媒體播放器的發(fā)展與應(yīng)用。 1.21.2 系統(tǒng)設(shè)計的目的和意義系統(tǒng)設(shè)計的目的和意義 這個課程設(shè)計的目的就是制作一個能夠播放音頻、視頻文件的播放器,并 使它具備一些簡單的操作處理功能,如播放暫停的控制,音量的調(diào)節(jié),視頻的 全屏播放,視頻進度的調(diào)節(jié)等等。將這個小型播放軟件做得盡量的小巧、實用。 多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍的技術(shù),是新一代電子 技術(shù)發(fā)展和競爭的焦點。多媒體技術(shù)融計算機、聲音、文本、圖像、動畫、視 頻和通信等多種功能于一體,借助日益普及的高速信息網(wǎng),可實現(xiàn)計算機的全 球聯(lián)網(wǎng)和信息資源共享,因此被廣泛應(yīng)用在咨詢服務(wù)、圖書、教育、通信、軍 事、金融、醫(yī)療等諸多行業(yè),并正潛移默化地改變著我們生活的面貌。 多媒體技術(shù)已經(jīng)成為當(dāng)今比較熱門的研究課題,特別是伴隨著多媒體技術(shù) 的網(wǎng)絡(luò)化,使得多媒體技術(shù)的發(fā)展前景無限廣闊,因此掌握多媒體及多媒體技 術(shù)的相關(guān)知識,了解多媒體技術(shù)當(dāng)前的發(fā)展?fàn)顩r及未來的發(fā)展前景,并能熟練 地進行多媒體技術(shù)的開發(fā),對于當(dāng)前即將畢業(yè)的大學(xué)生來講,是很有發(fā)展前途 的。 基于此,我選擇了此課題多媒體播放器的設(shè)計與實現(xiàn),期望通過對此課 題的研究與開發(fā),能深入了解多媒體技術(shù),特別是掌握多媒體技術(shù)在媒體播放 器中的應(yīng)用。 1.31.3 研究背景研究背景 本設(shè)計采用的 Microsoft Visual Studio 2010 是微軟公司發(fā)布的 Microsoft Visual Studio 軟件開發(fā)工具的較新版本,此開發(fā)軟件支持 C#、VB.NET、C+、ASP.NET 等多種編程語言,功能非常強大。 由于本設(shè)計要實現(xiàn)音頻和視頻解碼,所以要用到 directshow sdk 開發(fā)包。 DirectShow 是微軟公司在 ActiveMovie 和 Video for Windows 的基礎(chǔ)上推 出的新一代基于 COM(Component Object Model)的流媒體處理的開發(fā)包,與 DirectX 開發(fā)包一起發(fā)布。DirectShow 使用一種叫 Filter Graph 的模型來管理 整個數(shù)據(jù)流的處理過程,運用 DirectShow,我們可以很方便地從支持 WDM 驅(qū)動 模型的采集卡上捕獲數(shù)據(jù),并且進行相應(yīng)的后期處理乃至存儲到文件中。這樣 使在多媒體數(shù)據(jù)庫管理系統(tǒng)(MDBMS)中多媒體數(shù)據(jù)的存取變得更加方便。它廣 泛地支持各種媒體格式,包括 Asf、Mpeg、Avi、Dv、Mp3、Wave 等,為多媒體 流的捕捉和回放提供了強有力的支持。 ActiveMovie,開發(fā)代號 Quartz,這個由 Geraint Davies 為微軟公司設(shè) 計的 DirectShow 的前身,在 Windows 3.0 時代,是作為一種對當(dāng)時最流行的 媒體平臺 QuickTime 的回應(yīng)而開發(fā)的。ActiveMovie 最早的出現(xiàn)是被附加在 Windows 95 上面的并且需要系統(tǒng)安裝了 IE3.0 。它當(dāng)時的使命是作為 IE 的 附件播放在其窗口內(nèi)的媒體文件,正如當(dāng)時 QuickTime 為 Netscape 以及 IE 提供的服務(wù)那樣,它的另一個功能是作為 Windows 視頻技術(shù)(VFW,Video For Windows)的一個替換,特別地為在 VFW 架構(gòu)中難于處理的 MPEG(移動圖象專 家組格式文件)文件提供輔助處理。 在 1998 年,大致在 DirectX 5 年代的時候,ActiveMovie 被重命名為 DirectShow(反映了微軟公司在那時正在努力加強“直接地”在一個通常的取 名系統(tǒng)之下與硬件合作的技術(shù))并且被包含為 DirectMedia SDK 的一部份。 在 DirectX 的 7 版中,DirectShow 變成了 DirectX SDK 主要組成部分而且 如同 DirectInput 等其它 DirectX APIs 一樣被給予了它自己的位置。甚至之 后, DirectShow 被主要用來接收來自像一個手提攝像機這樣的電視輸入裝置 的數(shù)據(jù),而且它從文件中顯示數(shù)據(jù)的能力被廣泛用在 Windows Media Player 上面。 從 2005 年四月起,DirectShow 被從 DirectX SDK 移除,必須單獨下 載 Extra 包才能得以支持,之后 DirectShow 的文檔和示例被轉(zhuǎn)移到 Windows SDK,DirectShow 也正式成為 Windows 的一個組件。然而,在編譯某些 DirectShow 的示例時,DirectX SDK 仍然是必需的。 本次設(shè)計出來的多媒體播放器主要支持 avi、wmv、flv、rmvb 和 mkv 幾種 網(wǎng)絡(luò)上常見的視頻格式,對此做簡要介紹。 Avi 的英文全稱為 Audio Video Interleaved,即音頻視頻交錯格式。它于 1992 年被 Microsoft 公司推出,隨 Windows3.1 一起被人們所認(rèn)識和熟知。所 謂“音頻視頻交錯” ,就是可以將視頻和音頻交織在一起進行同步播放。這種視 頻格式的優(yōu)點是圖像質(zhì)量好,可以跨多個平臺使用,但是其缺點是體積過于龐 大,而且更加糟糕的是壓縮標(biāo)準(zhǔn)不統(tǒng)一,因此經(jīng)常會遇到高版本 Windows 媒體 播放器播放不了采用早期編碼編輯的 AVI 格式視頻,而低版本 Windows 媒體播 放器又播放不了采用最新編碼編輯的 AVI 格式視頻。其實解決的方法也非常簡 單,我們將在后面的視頻轉(zhuǎn)換、視頻修復(fù)部分中給出解決的方案。 Rmvb 是一種由 RM 視頻格式升級延伸出的新視頻格式,它的先進之處在于 RMVB 視頻格式打破了原先 RM 格式那種平均壓縮采樣的方式,在保證平均壓縮 比的基礎(chǔ)上合理利用比特率資源,就是說靜止和動作場面少的畫面場景采用較 低的編碼速率,這樣可以留出更多的帶寬空間,而這些帶寬會在出現(xiàn)快速運動 的畫面場景時被利用。這樣在保證了靜止畫面質(zhì)量的前提下,大幅地提高了運 動圖像的畫面質(zhì)量,從而圖像質(zhì)量和文件大小之間就達到了微妙的平衡。 FLV 是 FLASH VIDEO 的簡稱,F(xiàn)LV 流媒體格式是隨著 Flash MX 的推出發(fā)展 而來的視頻格式。由于它形成的文件極小、加載速度極快,使得網(wǎng)絡(luò)觀看視頻 文件成為可能,它的出現(xiàn)有效地解決了視頻文件導(dǎo)入 Flash 后,使導(dǎo)出的 SWF 文件體積龐大,不能在網(wǎng)絡(luò)上很好的使用等缺點。 WMV(Windows Media Video)是微軟推出的一種流媒體格式,它是在“同門” 的 ASF(AdvancedStreamFormat)格式升級延伸來得。在同等視頻質(zhì)量下,WMV 格式的文件可以邊下載邊播放,因此很適合在網(wǎng)上播放和傳輸。 MKV 不是一種壓縮格式,而是 Matroska 的一種媒體文件,Matroska 是一種 新的多媒體封裝格式,也稱多媒體容器 (Multimedia Container)。它可將多種 不同編碼的視頻及 16 條以上不同格式的音頻和不同語言的字幕流封裝到一個 Matroska Media 文件當(dāng)中。MKV 最大的特點就是能容納多種不同類型編碼的視 頻、音頻及字幕流。 了解了以上的相關(guān)知識,使得開發(fā)多媒體播放軟件有了一個更加清晰的思 路。 1.41.4 論文主要研究內(nèi)容及論文結(jié)構(gòu)安排論文主要研究內(nèi)容及論文結(jié)構(gòu)安排 本畢業(yè)設(shè)計是制作一個可播放目前主流媒體格式的多媒體播放器,其基本 功能應(yīng)具有媒體播放、音量調(diào)節(jié)、播放進度選擇、暫停、停止以及抓圖等,使 之成為一款簡易的媒體播放設(shè)備,能夠完美的播放市面上大多數(shù)的音頻、視頻 文件。 論文的結(jié)構(gòu)安排: 第一章 緒論介紹研究背景,目的和意義等;第二 章 開發(fā)工具介紹,軟件的需求分析和模塊設(shè)計;第三章 多媒體播放器軟件設(shè) 計; 第五章 播放器實現(xiàn)結(jié)果演示;最后是結(jié)束語以及參考文獻和附錄的相關(guān) 內(nèi)容。 第二章 開發(fā)平臺介紹和軟件的初步設(shè)計 2.12.1 開發(fā)平臺的介紹開發(fā)平臺的介紹 Visual Studio 是微軟公司推出的開發(fā)環(huán)境。是目前最流行的 Windows 平 臺應(yīng)用程序開發(fā)環(huán)境。Visual Studio 2010 版本于 2010 年 4 月 12 日上市,其 集成開發(fā)環(huán)境(IDE)的界面被重新設(shè)計和組織,變得更加簡單明了。Visual Studio 2010 同時帶來了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview-CTP),并且支持開發(fā)面向 Windows 7 的 應(yīng)用程序。除了 Microsoft SQL Server,它還支持 IBM DB2 和 Oracle 數(shù)據(jù)庫。 在 vs2010 開發(fā)平臺上開發(fā)用戶界面應(yīng)用程序,我們需要用到 mfc 類庫。 MFC(Microsoft Foundation Classes),是一個微軟公司提供的類庫 (class libraries) ,以 C+類的形式封裝了 Windows 的 API,并且包含一個應(yīng) 用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量 Windows 句柄封裝類和很多 Windows 的內(nèi)建控件和組件的封裝類。 MFC 是 WinAPI 與 C+的結(jié)合。API,即微軟提供的 Windows 下應(yīng)用程序的編 程語言接口,是一種軟件編程的規(guī)范,但不是一種程序開發(fā)語言本身,可以允 許用戶使用各種各樣的第三方(如我是一方,微軟是一方,Borland 就是第三方)的 編程語言來進行對 Windows 下應(yīng)用程序的開發(fā),使這些被開發(fā)出來的應(yīng)用程序 能在 Windows 下運行,比如 VB、VC+、Java、Delhpi。編程語言函數(shù)本質(zhì)上全 部源于 API,因此用它們開發(fā)出來的應(yīng)用程序都能工作在 Windows 的消息機制 和繪圖里,遵守 Windows 作為一個操作系統(tǒng)的內(nèi)部實現(xiàn),這其實也是一種必要。 微軟如果不提供 API,這個世上對 Windows 編程的工作就不會存在,微軟的產(chǎn) 品就會迅速從時尚變成垃圾。上面說到 MFC 是微軟對 API 函數(shù)的專用 C+封裝, 這種結(jié)合一方面讓用戶使用微軟的專業(yè) C+ SDK 來進行 Windows 下應(yīng)用程序的 開發(fā)變得容易,因為 MFC 是對 API 的封裝,微軟做了大量的工作,隱藏了好多 程序開發(fā)人員在 Windows 下用 C+ strFilter += MPEG File (*.mpg; *.mpeg) | *.mpg; *.mpeg|; strFilter += MP3 File (*.mp3) | *.mp3|; strFilter += WMA File (*.wma) | *.wma|; strFilter += All File (*.*) | *.*|; /編輯下拉選項框 CFileDialog dlg(TRUE,NULL,NULL,OFN_PATHMUSTEXIST|OFN_HIDEREADONLY, strFilter, this); /設(shè)置打開文件對話框 if (dlg.DoModal() = IDOK)/當(dāng)用戶打開文件時,做以下行為 m_sourceFile = dlg.GetPathName();/獲取文件所在的路徑名 m_mediaFileName =GetFileTitleFromFileName(m_sourceFile,1);/獲取 文件名稱 CreateGraph();創(chuàng)建鏈表,連接濾波器 (2)單擊“播放”按鈕后,開始選擇播放的媒體文件。同時在標(biāo)題欄中顯 示播放速率和媒體文件名,具體代碼如下: void CMediaPlayerDlg:OnBnClickedButtonPlay() if (m_pFilterGraph) /如果 CDXGraph 對象已創(chuàng)建成功,則執(zhí)行以下代碼 SetWindowText(_T(1 倍速播放 ) + m_mediaFileName); /設(shè)置窗口標(biāo)題 欄文本內(nèi)容 m_pFilterGraph-Run(); /播放視頻文件 m_pFilterGraph-ChangeAudioVolume(m_volume); /改變音量 m_sliderVolume.SetPos(m_volume); /設(shè)置音量進度條的位置 if (m_playerTimer = 0) /設(shè)置定時器 m_playerTimer = SetTimer(SLIDER_TIMER, 100, NULL); (3)點擊“暫停”按鈕,暫停播放視頻。 void CMediaPlayerDlg:OnBnClickedButtonPause() if (m_pFilterGraph != NULL)/如果 CDXGraph 對象不為空,則執(zhí)行 代碼 m_pFilterGraph-Pause();/暫停播放視頻 (4)點擊“停止”按鈕,停止播放視頻。 void CMediaPlayerDlg:OnBnClickedButtonStop() if (m_pFilterGraph != NULL)/如果 CDXGraph 對象不為空,則執(zhí)行 代碼 m_pFilterGraph-Stop();/停止播放視頻 (5)點擊“退出”按鈕,退出程序。 void CMediaPlayerDlg:OnBnClickedButtonExit() OnBnClickedButtonStop();/停止播放 CoUninitialize();/關(guān)閉程序的所有線程 CDialog:OnOK();/關(guān)閉窗口 (6)點擊“抓圖”按鈕,實現(xiàn)視頻截圖功能,并且將圖片保存到軟件的同一 目錄下。 void CMediaPlayerDlg:OnBnClickedButtonGrasp() static int c = 0; TCHAR szFilenameMAX_PATH; DWORD dwPathLen = 0; if(dwPathLen=:GetModuleFileName(:AfxGetInstanceHandle(),szFilename, MAX_PATH )= 0)/得到程序整個路徑名長度 return; for( int i=dwPathLen-1; i=0; i-)/獲取圖片保存的目錄 if( = szFilenamei) | (/ = szFilenamei) break; else szFilenamei = 0; /設(shè)置圖片保存的完整路徑名稱 CString str; str.Format(_T(%s),szFilename); CString strTemp; strTemp.Format(_T(%d),c); str += strTemp + _T(.bmp); c+; TCHAR *p=str.GetBuffer(str.GetLength(); str.ReleaseBuffer(); /進行抓圖,并且將圖片放在指定路徑下 if (m_pFilterGraph != NULL) if (m_pFilterGraph-SnapshotBitmap(p) else MessageBox(_T(抓圖失敗!); (7)實現(xiàn)拖拽功能,使得手動拖動進度條控件,能夠控制音量的大小以及 視頻的進度。 void CMediaPlayerDlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) if(pScrollBar-GetSafeHwnd()=m_sliderPlayer.GetSafeHwnd() /如果拖動消息來自視頻進度條,則執(zhí)行代碼 if (m_pFilterGraph != NULL)/CDXGraph 對象不為空 double duration =1.0;/定義事件長度對象 m_pFilterGraph-GetDuration(/獲取流媒體文件時間 長度 double pos = duration * m_sliderPlayer.GetPos()/1000.0;/計算得到 進度條位置 m_pFilterGraph-SetCurrentPosition(pos);/設(shè)置當(dāng)前進度條的位 置 else if(pScrollBar-GetSafeHwnd()=m_sliderVolume.GetSafeHwnd()/如果 拖動消息來自音量進度條 if (m_pFilterGraph != NULL) m_volume = m_sliderVolume.GetPos();/獲取音量進度條位置 m_pFilterGraph-ChangeAudioVolume(m_volume);/改變當(dāng)前音 量 else CDialog:OnHScroll(nSBCode, nPos, pScrollBar); (8)設(shè)置靜音或非靜音模式 void CMediaPlayerDlg:OnMenuMute() if (m_pFilterGraph != NULL)/CDXGraph 對象不為空 static int flag=0;/設(shè)置信號量 if (!flag)/判斷信號量是否為真,即判斷當(dāng)前是否為靜音模式 m_pFilterGraph-Mute();/設(shè)置為靜音模式 flag = 1;/設(shè)置信號量為真 else m_pFilterGraph-UnMute();/設(shè)置為非靜音模式 flag = 0;設(shè)置信號量為假 (9)設(shè)置全屏播放模式。 void CMediaPlayerDlg:OnMenuFullscreen() static int flag=0; /設(shè)置信號量 if (m_pFilterGraph != NULL) if (!flag)/判斷信號量的值是否為真,即判斷當(dāng)前是否為全屏 m_pFilterGraph-SetFullScreen(TRUE);/設(shè)置為全屏模式 flag = 1;/設(shè)置信號量為真 else m_pFilterGraph-SetFullScreen(FALSE);/關(guān)閉全屏模式 flag = 0;/設(shè)置信號量為假 (10)設(shè)置置頂播放模式,但用戶將播放器設(shè)置成置頂播放模式后,播放 器就不會被其他窗口所覆蓋。 void CMediaPlayerDlg:OnMenuAlwaysontop() static int flag=0; 設(shè)置信號量 if (!flag)/判斷信號量是否為真,即判斷當(dāng)前是否為置頂模式 :SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|S WP_NOSI ZE);/設(shè)置窗口為置頂 flag = 1;/設(shè)置信號量為真 else :SetWindowPos(m_hWnd,HWND_NOTOPMOST,0,0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);/設(shè)置窗口為非置頂 flag = 0;/設(shè)置信號量為假 (11)播放速率的控制,以下為半速播放視頻的代碼,正常速率播放和兩 倍速率播放視頻的代碼相似,這里就不在重復(fù)講述。 void CMediaPlayerDlg:OnMenuHalfrate() if (m_pFilterGraph)/如果 CDXGraph 對象不為空,則執(zhí)行代碼 m_pFilterGraph-SetPlaybackRate(0.5);/將播放速率設(shè)為 1/2; SetWindowText(_T(1/2 倍速播放 ) + m_mediaFileName);/設(shè)置窗口標(biāo) 題文本 第四章 程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論