已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
河南大學(xué)2007屆本科畢業(yè)論文基于activemovie組件的多媒體播放器的實現(xiàn) implementation of a multimedia player based on activemovie components 論文作者姓名:吳宏凱 所在學(xué)院:計算機與信息工程學(xué)院 所學(xué)專業(yè):計算機科學(xué)與技術(shù) 導(dǎo)師姓名職稱:于靜洋(講師) 論文完成時間:2007年5月20日 2007年5月20日河南大學(xué)2007屆畢業(yè)論文(設(shè)計、創(chuàng)作)開題報告(由學(xué)生本人認真填寫)學(xué)號03023200姓名吳宏凱導(dǎo)師姓名職稱于靜洋(講師)開題時間2006年12月1日課題題目基于activemovie組件的多媒體播放器課題來源導(dǎo)師指定 自定 其他來源課題的目的、意義以及和本課題有關(guān)的國內(nèi)外現(xiàn)狀分析:1、目的為了進一步增加對多媒體知識的了解,進一步熟悉多媒體編程方面的知識,從而使自己在多媒體理論、編程實踐方面都有一個較大的提高。2、意義多媒體技術(shù)已經(jīng)成為當(dāng)今比較熱門的研究課題,因此掌握多媒體及多媒體技術(shù)的相關(guān)知識,了解多媒體技術(shù)當(dāng)前的發(fā)展狀況及未來的發(fā)展前景,并能熟練地進行多媒體技術(shù)的開發(fā),對于當(dāng)前即將畢業(yè)的大學(xué)生來講,是很有必要的。3、現(xiàn)狀多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍的技術(shù),是新一代電子技術(shù)發(fā)展和競爭的焦點,特別是伴隨著多媒體技術(shù)的網(wǎng)絡(luò)化,使得多媒體技術(shù)的發(fā)展前景無限廣闊。研究目標、研究內(nèi)容和準備解決的問題:1、目標設(shè)計出一款基于windows activemovie組件的、能播放大多主流媒體格式的、功能完善、使用方便的多媒體播放器。2、內(nèi)容了解windows activemove組件的功能、成員及應(yīng)用,熟悉播放器各個功能模塊及其實現(xiàn)過程,熟悉播放器的底層工作原理,熟悉activemovie組件的應(yīng)用,了解媒體編碼解碼原理。本播放器設(shè)計將不采用任何第三方控件,欲采用的是windows底層組件進行解碼播放,該組件主要是支持mp3播放,所以必須對mp3音頻文件格式進行了解,熟悉mp3編碼方式和文件結(jié)構(gòu),熟悉基于xml的更改皮膚原理。3、準備解決的問題(1)利用系統(tǒng)組件實現(xiàn)最基本的媒體播放。(2)自己實現(xiàn)進度條進行播放控制、音量控制。(3)播放列表和播放模式控制。(4)同步歌詞顯示。(5)迷你播放器實現(xiàn)。(6)切割窗體。(7)最小化后系統(tǒng)托盤顯示。擬采取的方法、技術(shù)或設(shè)計(開發(fā))工具: 本系統(tǒng)將采用visual basic 6.0開發(fā)平臺預(yù)期成果:1、畢業(yè)設(shè)計成果基于activemovie組件的多媒體播放器2、畢業(yè)論文進度計劃:2006.12.1 - 2007.1.15:查找資料、搜集相關(guān)素材 2006.1.16 - 2007.2.11:進行項目的需求分析、概要設(shè)計2006.2.12 - 2007.4.1:實現(xiàn)主窗體和播放列表窗體的主要功能2007.4.2 - 2007.4.11:實現(xiàn)加載系統(tǒng)初始化狀態(tài)功能、實現(xiàn)皮膚更換功能、實現(xiàn)歌詞同步顯示功能2007.4.12 - 2007.4.21:實現(xiàn)迷你播放窗體功能、實現(xiàn)系統(tǒng)最小化托盤顯示功能2007.4.22 - 2007.4.30:完善系統(tǒng)功能并進行系統(tǒng)功能測試2007.5.1 - 2007.5.20:整理資料、撰寫畢業(yè)論文2007.5.20 - 2007.5.25:根據(jù)導(dǎo)師要求,完善畢業(yè)設(shè)計和論文指導(dǎo)教師對選題報告的意見: 該生選題符合要求,進度計劃安排合理,同意開題。 指導(dǎo)教師簽名: 2006年12月1日開題報告ii河南大學(xué)2007屆畢業(yè)論文(設(shè)計、創(chuàng)作)任務(wù)書(由學(xué)生本人認真填寫)學(xué)號03023200姓名吳宏凱導(dǎo)師姓名于靜洋任務(wù)書起止日期2006年12月8日 至 2007年5月20日論文提要:論文將以項目開發(fā)為主線,介紹基于activemovie組件的“多媒體播放器”實現(xiàn)的過程,文章內(nèi)容將主要包括項目設(shè)計開發(fā)背景的介紹、相關(guān)多媒體理論應(yīng)用的介紹、基本播放功能的設(shè)計與實現(xiàn)、播放列表功能的設(shè)計與實現(xiàn)、歌詞顯示功能的設(shè)計與實現(xiàn)等等。課題任務(wù)要求:系統(tǒng)的設(shè)計與開發(fā)要求必須熟悉多媒體相關(guān)理論知識,熟悉visual basic 6.0開發(fā)平臺的應(yīng)用,熟悉播放器實現(xiàn)的相關(guān)原理及其實現(xiàn)方法,了解windows api相關(guān)編程,熟悉windows activemove組件的功能、成員及應(yīng)用。主要目的就是以項目帶動自己對相關(guān)知識的學(xué)習(xí),使自己對多媒體軟件開發(fā)有更加深刻、全面地認識。最終基本實現(xiàn):主流播放器所有的基本功能能夠播放大多的媒體格式、能夠進行各種播放控制、實現(xiàn)多媒體列表播放、實現(xiàn)歌詞同步顯示、能夠顯示媒體文件信息、能夠更改系統(tǒng)皮膚等等。主要參考文獻:1 林福宗,多媒體技術(shù)基礎(chǔ),第2版,清華大學(xué)出版社,2002年9月2 鐘玉琢,多媒體計算機技術(shù)基礎(chǔ)及應(yīng)用,清華大學(xué)出版社,2006年2月3 ze-nian li等著,多媒體技術(shù)教程,機械工業(yè)出版社,2007年1月4 彭波等著,多媒體技術(shù)及應(yīng)用,機械工業(yè)出版社,2006年4月5 microsoft,msdn library visual studio 6.0(chs)6 趙子江,多媒體技術(shù)應(yīng)用教程,第3版,機械工業(yè)出版社,2003年8月河南大學(xué)2007屆畢業(yè)設(shè)計(論文、創(chuàng)作)中期檢查表學(xué)院名稱:計算機與信息工程學(xué)院題目名稱基于activemovie組件的多媒體播放器的實現(xiàn)學(xué)號03023200所學(xué)專業(yè)計算機科學(xué)與技術(shù)指導(dǎo)教師姓 名于靜洋姓名吳宏凱一、畢業(yè)設(shè)計進展情況完成了系統(tǒng)設(shè)計開發(fā)的前期準備工作;完成了系統(tǒng)需求分析、概要設(shè)計階段的工作;進入編碼實現(xiàn)階段,實現(xiàn)了主窗體(基本播放、基本播放控制)和播放列表窗體(媒體列表播放、播放列表操作新建、刪除、修改)的基本功能,實現(xiàn)了加載系統(tǒng)初始化狀態(tài)(播放狀態(tài)、顯示模式等)的功能,實現(xiàn)了更換系統(tǒng)皮膚、歌詞同步顯示功能。二、存在問題使用播放組件出現(xiàn)問題,正常播放情況下,在用播放對象獲取相關(guān)播放信息(播放位置、播放音量等)時出現(xiàn)對象沒有相關(guān)屬性的異常,通過多次嘗試得以解決,原因是創(chuàng)建播放對象但還未開始播放時,不能獲取播放位置等信息,根本原因在于播放控制存在問題,需要改進。還有就是對用戶定制進度條進行控制播放還沒有特別清晰的思路。還沒有實現(xiàn)一句歌詞多個時間點歌詞文件的同步顯示。三、下一階段的研究方法或設(shè)計思路完善主播放窗體(實現(xiàn)自己定制的進度條控制)和播放列表窗體的功能,完善歌詞同步顯示功能,實現(xiàn)迷你模式播放,完成獲取媒體文件信息、最小化系統(tǒng)托盤顯示等功能,在時間允許的情況下進行相關(guān)功能拓展。整個設(shè)計思路類似快速原型法的工程實現(xiàn),先實現(xiàn)基礎(chǔ)功能,進而進行相關(guān)功能拓展,由最根本處底層實現(xiàn)向用戶功能視角功能設(shè)計與實現(xiàn)。四、指導(dǎo)教師對學(xué)生設(shè)計(論文、創(chuàng)作)進展等方面的評語 該生基本能按計劃進度完成任務(wù),進度比較合理,自評內(nèi)容與實際相符,實際的功能還存在一些問題,需要改進。 指導(dǎo)教師簽字: 2007年 4月10日 河南大學(xué)2007屆畢業(yè)論文(設(shè)計、創(chuàng)作)綜合成績表(一)學(xué)院名稱:計算機與信息工程學(xué)院學(xué) 號03023200姓名吳宏凱專業(yè)計算機科學(xué)與技術(shù)指導(dǎo)教師于靜洋(講師)綜合得分85論文題目基于activemovie組件的多媒體播放器的實現(xiàn)指導(dǎo)教師評語及得分指導(dǎo)教師評語 該生立題有新意,設(shè)計功能比較完善,論文重點突出,語句流暢,思路清晰,能夠明確表達系統(tǒng)的功能,內(nèi)容與設(shè)計相符,符合要求。評分項目分值指導(dǎo)教師對畢業(yè)論文(設(shè)計、創(chuàng)作)評分撰寫開題報告、文獻綜述15調(diào)查研究查閱整理資料10學(xué)習(xí)態(tài)度與規(guī)范要求10數(shù)據(jù)處理、文字表達10論文(設(shè)計、創(chuàng)作)質(zhì)量和創(chuàng)新意識55合計100得分118885085指導(dǎo)教師簽名 2007年5月20日評閱教師評語及評分評閱教師評語 該生立題有新意,設(shè)計功能較完善,論文重點突出,語句流暢,思路清晰,能明確表達系統(tǒng)的功能,內(nèi)容與設(shè)計相符,符合要求。評分項目分值評閱畢業(yè)論文(設(shè)計、創(chuàng)作)評分撰寫開題報告、文獻綜述15調(diào)查研究查閱整理資料10學(xué)習(xí)態(tài)度與規(guī)范要求10數(shù)據(jù)處理、文字表達10論文(設(shè)計、創(chuàng)作)質(zhì)量和創(chuàng)新意識55合計100得分128885086評閱教師簽名 2007年5月22日河南大學(xué)2007屆畢業(yè)論文(設(shè)計、創(chuàng)作)綜合成績表(二)學(xué)號03023200姓名吳宏凱所在學(xué)院計算機與信息工程學(xué)院答辯委員會評語及評分答辯委員會評語 該生思路清晰敏捷,語言流暢,對問題的闡述清晰明了,回答正確,達到本科畢業(yè)水平。答辯委員簽字: 2007年5月26日評分 項目 分值論文答辯小組評分答辯情況論文質(zhì)量合計(100)內(nèi)容表達情況(15)答辯問題情況(25)規(guī)范要求與文字表達(20)論文(設(shè)計、創(chuàng)作)質(zhì)量和創(chuàng)新意識(40)得分112216 3685答辯委員會主任簽字: 2007年5月26日畢業(yè)論文(設(shè)計、創(chuàng)作)成績綜合評定: 85 分綜合評定等級:良備注:一、論文的質(zhì)量評定,應(yīng)包括對論文的語言表達、結(jié)構(gòu)層次、邏輯性理論分析、設(shè)計計算、分析和概括能力及在論文中是否有新的見解或創(chuàng)新性成果等做出評價。從論文來看學(xué)生掌握本專業(yè)基礎(chǔ)理論和基本技能的程度。二、成績評定采用結(jié)構(gòu)評分法,即由指導(dǎo)教師、評閱教師和答辯委員會分別給分(以百分計),評閱教師得分乘以20%加上指導(dǎo)教師得分乘以20%加上答辯委員會得分乘以60%即綜合成績。評估等級按優(yōu)、良、中、差劃分,優(yōu)90-100分;良76-89分;中60-75分;差60分以下。三、評分由專業(yè)教研室或院組織專門評分小組(不少于5人),根據(jù)指導(dǎo)教師和答辯委員會意見決定每個學(xué)生的分數(shù),在有爭議時,應(yīng)由答辯委員會進行表決。四、畢業(yè)論文答辯工作結(jié)束后,各院應(yīng)于6月20日前向教務(wù)處推薦優(yōu)秀論文以匯編成冊,推薦的篇數(shù)為按當(dāng)年學(xué)院畢業(yè)生人數(shù)的1.5%篇。五、各院亦可根據(jù)本專業(yè)的不同情況,制定相應(yīng)的具有自己特色的內(nèi)容。須報教務(wù)處備案。六、書寫格式要求:1、目錄;2、內(nèi)容提要須書寫200左右漢字,開題報告(文科除外)的內(nèi)容要根據(jù)不同專業(yè)的課題任務(wù)要求,闡述查閱文獻、文案論證、解題思路、工作步驟等;3、正文(含引言、結(jié)論等);4、參考文獻(或資料)河南大學(xué)本科生畢業(yè)論文(設(shè)計、創(chuàng)作)承諾書論文題目基于activemovie組件的多媒體播放器的實現(xiàn)姓 名吳宏凱所學(xué)專業(yè)計算機科學(xué)與技術(shù)學(xué) 號03023200完成時間.2007年5 月20日指導(dǎo)教師姓名職稱于靜洋(講師)承諾內(nèi)容:1、本畢業(yè)論文(設(shè)計、創(chuàng)作)是學(xué)生 吳宏凱 在導(dǎo)師 于靜洋 的指導(dǎo)下獨立完成的,沒有抄襲、剽竊他人成果,沒有請人代做,若在畢業(yè)論文(設(shè)計、創(chuàng)作)的各種檢查、評比中被發(fā)現(xiàn)有以上行為,愿按學(xué)校有關(guān)規(guī)定接受處理,并承擔(dān)相應(yīng)的法律責(zé)任。2、學(xué)校有權(quán)保留并向上級有關(guān)部門送交本畢業(yè)論文(設(shè)計、創(chuàng)作)的復(fù)印件和磁盤。備注:學(xué)生簽名: 指導(dǎo)教師簽名: 2007年5月20日 2007年5月20日說明:學(xué)生畢業(yè)論文(設(shè)計、創(chuàng)作)如有保密等要求,請在備注中明確,承諾內(nèi)容第2條即以備注為準。目 錄摘 要iabstractii第1章 緒論11.1 多媒體的定義11.2 多媒體技術(shù)的發(fā)展現(xiàn)狀2第2章 開發(fā)環(huán)境和相關(guān)技術(shù)介紹32.1 系統(tǒng)開發(fā)環(huán)境32.2 相關(guān)開發(fā)技術(shù)3第3章 系統(tǒng)需求分析53.1 系統(tǒng)界面需求53.2 系統(tǒng)功能需求5第4章 系統(tǒng)概要設(shè)計74.1 系統(tǒng)整體結(jié)構(gòu)74.2 系統(tǒng)功能流程8第5章 系統(tǒng)詳細設(shè)計與編碼實現(xiàn)95.1 接口模塊區(qū)95.1.1 windows api模塊95.1.2 基本播放處理模塊125.2 功能窗體區(qū)155.2.1 主播放窗體155.2.2 媒體列表窗體185.2.3 歌詞顯示窗體19結(jié) 論21參考文獻22河南大學(xué)本科畢業(yè)生學(xué)士學(xué)位論文摘 要多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍的技術(shù),是當(dāng)前人們關(guān)注的熱點技術(shù)之一,是新一代電子技術(shù)發(fā)展和競爭的焦點。與多媒體技術(shù)發(fā)展密切相關(guān)的就是多媒體播放平臺,它是多媒體技術(shù)的一個重要的分支,是人們暢游媒體信息世界的主要渠道。本文實現(xiàn)了一個基于activemovie組件的多媒體播放器。主要實現(xiàn)的功能包括:支持目前多數(shù)格式的媒體文件,基本的播放控制功能,支持多媒體播放列表,同步歌詞顯示,曲目信息顯示等。該系統(tǒng)是在visual studio 6.0開發(fā)平臺上開發(fā)的,是基于visual basic語言編寫的。關(guān)鍵詞 多媒體技術(shù),播放平臺,組件,接口函數(shù)abstractmultimedia technology is the fastest-growing and the most active technology in the field of information technology. it is one of the hot technologies which people concern and is also the focus of the new generation of electronic technology development and competition. multimedia player which is closely related to the multimedia technology development is an important branch of the multimedia technology and the main channels in which people enjoy the media information.in this paper, a multimedia player based on activemovie components is implemented. the main implemented functions of the multimedia player are: lots of multimedia file types, fundamental playing control functions, multimedia playing list, synchronic showing lyric, song information showing, etc.the development is based on visual studio 6.0 platform. the language is visual basic.keywords multimedia technology,broadcast platform,components,api第 21 頁第1章 緒論多媒體技術(shù)的快速發(fā)展使人們再次領(lǐng)略到計算機技術(shù)的巨大魅力,它大大地拓展了計算機的應(yīng)用領(lǐng)域,使計算機從辦公室、實驗室等狹小的領(lǐng)域空間走向平民大眾,成為信息社會的普通應(yīng)用工具,廣泛地充斥著社會生產(chǎn)生活的每一個角落。在這一進程中,多媒體播放平臺功不可沒,借助高速發(fā)展的互聯(lián)網(wǎng)絡(luò),各式各樣的媒體播放器將多媒體的概念帶進了人們的感官世界,潛移默化的影響著人們的生產(chǎn)和生活。1.1 多媒體的定義多媒體是融合兩種或者兩種以上媒體的一種人-機交互式信息交流和傳播媒體,使用的媒體包括文字、圖形、圖像、聲音、動畫和電視圖像等。它是一門綜合技術(shù),所以又稱之為多媒體技術(shù)。多媒體技術(shù)的概念起源于20世紀80年代初期,真正的發(fā)展是在90年代。多媒體是在計算機技術(shù)、通訊網(wǎng)絡(luò)技術(shù)、大眾傳媒技術(shù)等現(xiàn)代信息技術(shù)不斷進步的條件下,由多個學(xué)科不斷融合,相互促進而產(chǎn)生出來的,它是信息技術(shù)應(yīng)用發(fā)展的必然。進入90年代,由于“信息高速公路”計劃的興起、互聯(lián)網(wǎng)絡(luò)的廣泛應(yīng)用,大大刺激了多媒體信息產(chǎn)業(yè)的發(fā)展,在全球掀起一股家電行業(yè)、有線電視網(wǎng)絡(luò)、娛樂行業(yè)、計算機工業(yè)及通訊行業(yè)相互兼并、聯(lián)合組網(wǎng)的浪潮,人們開始步入真正的“多媒體時代”。相關(guān)行業(yè)的大規(guī)模兼并聯(lián)合,大造了新一代的信息領(lǐng)域,產(chǎn)生了嶄新的信息社會概念,同時也創(chuàng)造了無窮的機遇和潛在的巨大的市場空間。之后伴隨著計算機網(wǎng)絡(luò)、數(shù)字電視技術(shù)和通訊技術(shù)的快速發(fā)展,信息技術(shù)領(lǐng)域中的多媒體技術(shù)成為新一代電子技術(shù)發(fā)展和競爭的聚焦點。1.2 多媒體技術(shù)的發(fā)展現(xiàn)狀多媒體技術(shù)的交互性向用戶提供更加有效的控制和使用信息的手段。而多媒體播放平臺則是交互這一特性實現(xiàn)的一種重要的途徑。播放平臺是多媒體技術(shù)應(yīng)用的重要部分,是多媒體技術(shù)的展示舞臺,是人們走進多媒體世界的主要橋梁。各式各樣的媒體播放器將人們與多媒體聯(lián)系的日益緊密,使多媒體技術(shù)真正地走向大眾化。伴隨著多媒體技術(shù)的快速發(fā)展,各式各樣的多媒體播放器也應(yīng)運而生?,F(xiàn)存的主流播放器大致可以分為兩大類視頻播放器和音頻播放器。這里是從用戶的使用習(xí)慣去劃分的,實際上很多播放器都可以支持大多的媒體格式,它們不僅僅支持音頻的播放、還支持視頻的播放。但因設(shè)計的側(cè)重點不同,用戶對它們使用的也存在差異,比如說ttplayer可用來進行音頻播放,它以其小巧方便、外觀漂亮等特點成為很多用戶播放音頻的不二之選,它同樣支持視頻的處理,但卻沒有圖像顯示,這里可以看得出開發(fā)者對它的設(shè)計定位;mpc(media player classic)常被用來播放視頻,它幾乎支持所有的媒體格式,播放視頻尤為快捷方便,因此成為很多用戶播放視頻的首選,但卻很少被用來播放音頻。這就是播放器設(shè)計定位的不同對用戶使用習(xí)慣的影響,也是用戶不同使用需求的必然所致。本播放系統(tǒng)的開發(fā)正是基于以上的考慮和分析去進行的,力圖在音頻播放和視頻播放上都去竭力滿足用戶使用的需求,力求兼顧當(dāng)前主流播放器在音頻播放和視頻播放方面的各自優(yōu)點,力保在使用上去迎合用戶的習(xí)慣。第2章 開發(fā)環(huán)境和相關(guān)技術(shù)介紹系統(tǒng)的開發(fā)離不開對開發(fā)環(huán)境的了解和對相應(yīng)開發(fā)技術(shù)的學(xué)習(xí),開發(fā)環(huán)境是實現(xiàn)系統(tǒng)開發(fā)的前提,開發(fā)技術(shù)則是實現(xiàn)系統(tǒng)功能的根本。下面將分兩節(jié)介紹本系統(tǒng)的開發(fā)環(huán)境和主要的開發(fā)技術(shù)。2.1 系統(tǒng)開發(fā)環(huán)境本系統(tǒng)是在microsoft windows nt操作系統(tǒng)上采用vb6.0開發(fā)平臺進行開發(fā)的,使用的語言是visual basic(以下簡稱vb)。之所以采用vb6.0開發(fā)平臺,主要是考慮該平臺開發(fā)應(yīng)用程序的便捷性、高效性。vb6.0強大的圖形圖象處理技術(shù)、文件處理技術(shù)、多媒體處理技術(shù)、sdi和mdi等窗體編程技巧、方便的windows api函數(shù)使用,使它成為開發(fā)windows應(yīng)用程序的主要選擇之一。vb6.0開發(fā)平臺是microsoft公司推出的可視化開發(fā)工具,利用vb6.0可以開發(fā)基于windows平臺的應(yīng)用程序,依靠強大的編譯器及網(wǎng)絡(luò)與數(shù)據(jù)庫的開發(fā)能力,用vb6.0可以開發(fā)出功能強大的應(yīng)用程序。vb繼承了basic語言的簡單、高效、代碼結(jié)構(gòu)清晰、可讀性好、并且容入了面向?qū)ο?、可視化、事件?qū)動等軟件開發(fā)技術(shù),使basic語言編程發(fā)展到了一個新的高度。vb6.0以其簡單易用、功能強大、開發(fā)效率高的顯著特點,得到眾多程序員的青睞,在眾多開發(fā)平臺中占據(jù)著重要的地位。2.2 相關(guān)開發(fā)技術(shù)本系統(tǒng)的核心功能是基于quartz.dll、msxml3.dll等windows系統(tǒng)組件實現(xiàn)的。在windowssystem32下可找到一個動態(tài)鏈接庫quartz.dll,這是windows中提供的用于控制運動圖像播放的一個類型庫,只要在vb的“工程-引用”菜單中將它添加“activemovie control type library”即可。該庫中定義了ibasicaudio,ibasicvideo和ibasicvideo2,imediaevent,imediaeventex和imediaposition等類??稍谙嚓P(guān)控件的click等事件中添加代碼設(shè)置和audio的相關(guān)值,設(shè)置或讀取video的輸入輸出源的相關(guān)參數(shù);可以直接調(diào)用無參函數(shù)run、pause、stop的控制播放事件進程;利用imediaposition類對具體播放細節(jié)進行操作。xml可擴展標記語言(extensible markup language)萬維網(wǎng)協(xié)會(w3c)推薦的一個開放標準,它是構(gòu)造web上的文檔和數(shù)據(jù)通用格式。xml在windows項目開發(fā)中有著舉足輕重的重要地位,主要是用來存儲項目關(guān)鍵的信息,類似于數(shù)據(jù)庫系統(tǒng),但是從應(yīng)用來講確是更加的靈活、方便。vb中操作xml文檔,必須要導(dǎo)入windowssystem32下的動態(tài)鏈接庫msxml3.dll,該系統(tǒng)組件主要提供xml文檔的操作和使用接口。如何添加引用動態(tài)鏈接庫如圖2-1所示。圖2-1 添加系統(tǒng)引用示例圖xml文檔最主要的操作是對文檔節(jié)點的操作。讀取操作是最基本、最常用的操作,通常是聲明一個domdocument對象,然后通過lode函數(shù)加載的相應(yīng)xml文檔,再由domdocument對象獲取文檔根節(jié)點,再通過根節(jié)點去獲取其子節(jié)點,由子節(jié)點獲取其節(jié)點值或?qū)傩灾?,整個讀取過程就是樹的遍歷,可以根據(jù)不同的需要采用不同的遍歷方式。 第3章 系統(tǒng)需求分析需求分析是對用戶需求的真正明確,是對要解決的問題的全面理解,它是界于系統(tǒng)分析和軟件設(shè)計階段的重要橋梁。本章將從界面和功能兩個方面的需求來進行分析。3.1 系統(tǒng)界面需求隨著多媒體播放軟件的發(fā)展,用戶對播放軟件界面提出了更高的要求。用戶對界面的需求不僅僅再局限于簡潔、易操作等特點,還更加傾向于美觀、人性化、個性化等要求。本系統(tǒng)基于以上需求做出以下分析: 1、能夠多窗口顯示,用戶可以根據(jù)自己的需要關(guān)閉不使用的窗口,這樣可以有效地節(jié)省界面空間,從而使界面顯得小巧玲瓏、簡潔、美觀。2、能夠更換界面風(fēng)格,用戶可以根據(jù)自己的習(xí)慣更換個性化的界面風(fēng)格,從而使界面顯示風(fēng)格多樣化,更能滿足不同用戶的需要。3、能夠變換顯示模式,顯示模式包括普通顯示、迷你顯示、最小化顯示。普通顯示是正常的顯示狀態(tài),迷你顯示更小巧簡潔的顯示,最小化顯示是系統(tǒng)任務(wù)欄顯示。3.2 系統(tǒng)功能需求依據(jù)當(dāng)前的多媒體播放的主流需求,本系統(tǒng)首先要考慮以下基本功能需求:1、首先能夠播放當(dāng)前的大多數(shù)格式的媒體文件,主要包括mp3、wma、avi、mepg、rmvb等格式文件。2、能夠進行基本的播放控制,播放控制包括“進度控制”、“音量控制”、“播放狀態(tài)控制”(靜音、暫停、停止)、“曲目選擇”、“更改播放模式”(包括單曲播放、單曲循環(huán)、順序播放、循環(huán)播放、隨機播放五種模式)等基本操作。3、要支持媒體列表的播放,能夠進行基本的列表操作,包括“新建列表”、“刪除列表”、“重命名列表”、“添加媒體文件至列表”、“從列表刪除媒體文件”等操作,能夠顯示所有播放列表,能夠顯示當(dāng)前選中列表的所有媒體文件。4、能夠進行同步歌詞顯示,主要是音頻文件歌詞的同步顯示。同步顯示主要指歌詞顯示內(nèi)容與音頻播放進度保持同步。5、能夠進行曲目信息顯示,主要是mp3格式文件的曲目信息顯示,通常包括歌手名、專輯名、發(fā)行時間等常用信息。第4章 系統(tǒng)概要設(shè)計概要設(shè)計是將系統(tǒng)需求轉(zhuǎn)換為未來系統(tǒng)的設(shè)計,本章著重講述了系統(tǒng)整體結(jié)構(gòu)和功能流程設(shè)計。4.1 系統(tǒng)整體結(jié)構(gòu)基于以上的需求分析可以將本播放系統(tǒng)大致分為五大功能區(qū):功能窗體區(qū)、接口模塊區(qū)、歌詞資源區(qū)、播放列表區(qū)、皮膚文件區(qū)。系統(tǒng)結(jié)構(gòu)示例圖如圖4-1所示。圖4-1 系統(tǒng)結(jié)構(gòu)圖功能窗體區(qū):存放所有的功能窗體,系統(tǒng)基本信息文件。接口模塊區(qū):存放windows api接口成員,用戶自定義接口成員,系統(tǒng)全局變量。歌詞資源區(qū):存放所有歌詞文件。播放列表區(qū):存放所有歌曲列表。皮膚文件區(qū):存放所有窗體皮膚文件。功能窗體區(qū)是系統(tǒng)的核心,接口模塊區(qū)是系統(tǒng)的底層,其他三塊都可視為資源區(qū),功能窗體區(qū)和接口模塊區(qū)對資源去進行使用,從而實現(xiàn)更加完善的功能。功能窗體區(qū)主要是各個窗體具體功能的實現(xiàn),接口模塊區(qū)主要是公共功能的實現(xiàn),功能窗體區(qū)通過調(diào)用接口模塊區(qū)所提供的公共接口來實現(xiàn)相應(yīng)的功能。功能窗體區(qū)是系統(tǒng)資源的主要調(diào)用者,是用戶直接面向的區(qū)域模塊,位于系統(tǒng)最上層。4.2 系統(tǒng)功能流程根據(jù)前階段的需求分析和系統(tǒng)結(jié)構(gòu)設(shè)計來進行系統(tǒng)功能流程的分析。系統(tǒng)總體功能流程為:啟動播放器,加載基本狀態(tài)信息,然后用加載的信息進行初始化設(shè)置,進行文件播放,播放過程中用戶可以進行各種窗體操作,用戶使用結(jié)束,執(zhí)行關(guān)閉系統(tǒng)操作,系統(tǒng)退出前進行當(dāng)前播放基本狀態(tài)信息保存,保存成功后正常退出系統(tǒng)。圖4-2 系統(tǒng)流程圖系統(tǒng)總體功能流程如圖4-2所示。加載基本狀態(tài)信息:系統(tǒng)讀取皮膚文件和系統(tǒng)配置文件,然后將讀取的信息提交系統(tǒng)設(shè)置模塊,設(shè)置模塊再進行相關(guān)初始化設(shè)置。具體操作如圖4-3所示。初始化設(shè)置:使用加載的信息設(shè)置系統(tǒng)皮膚、設(shè)置系統(tǒng)基本狀態(tài)信息。設(shè)置皮膚是用讀取的皮膚文件信息來設(shè)置窗體和窗體元素的圖片、坐標位置。設(shè)置基本狀態(tài)信息包括窗體顯示設(shè)置(包括播放列表和歌詞顯示窗體)、播放列表設(shè)置(設(shè)置所要播放的播放列表)、播放文件設(shè)置(設(shè)置所要播放的播放文件)、播放音量設(shè)置、播放模式設(shè)置(普通模式、迷你模式、最小化模式)、靜音狀態(tài)設(shè)置。主窗體操作:包括播放系統(tǒng)的所有操作,包括播放控制操作、顯示模式操作、皮膚選擇操作等。圖4-3 加載系統(tǒng)基本狀態(tài)信息數(shù)據(jù)流圖第5章 系統(tǒng)詳細設(shè)計與編碼實現(xiàn)依據(jù)以上章節(jié)的需求分析和概要設(shè)計我們了解到系統(tǒng)包含五大模塊。各種功能的實現(xiàn)都是基于這五個模塊的,所以本章節(jié)主要通過系統(tǒng)的這幾個功能模塊來介紹系統(tǒng)的詳細設(shè)計及編碼實現(xiàn),其中功能窗體區(qū)和接口模塊區(qū)是描述的重點。5.1 接口模塊區(qū)接口模塊是整個多媒體播放系統(tǒng)的基礎(chǔ),它提供了公共功能實現(xiàn)的主要程序接口。系統(tǒng)又把該模塊細分為兩個子模塊windows api模塊和基本播放處理模塊。 5.1.1 windows api模塊該子模塊用來聲明系統(tǒng)所要使用的windows api函數(shù),聲明之后系統(tǒng)就可以直接使用。下面介紹一下本系統(tǒng)所使用的部分api函數(shù)和使用他們的設(shè)計考慮:1、窗體默認情況下是以矩形顯示的,為了使窗體顯示更加新穎、美觀,可以使用系統(tǒng)提供的接口函數(shù)對窗體進行切割處理,從而顯示出設(shè)計者或用戶所追求的種種效果。本系統(tǒng)將把所有主要顯示窗體統(tǒng)一切割為圓角矩形,主要使用的是createroundrectrgn函數(shù)。下面是相關(guān)函數(shù)的介紹和使用。function createroundrectrgn lib gdi32 (byval x1 as long, byval y1 as long, byval x2 as long, byval y2 as long, byval x3 as long, byval y3 as long) as long該函數(shù)主要功能:用來創(chuàng)建一個圓角矩形,該矩形由(x1,y1)-(x2,y2)確定,(x3,y3)用來確定的橢圓描述圓角弧度。返回值類型也為long,執(zhí)行成功則為區(qū)域句柄,失敗則為零。function setwindowrgn lib user32 (byval hwnd as long,byval hrgn as long, byval bredraw as boolean) as long該函數(shù)主要功能:允許您改變窗口的區(qū)域。通常所有窗口都是矩形的,窗口一旦存在就含有一個矩形區(qū)域。本函數(shù)允許您放棄該區(qū)域。這意味著您可以創(chuàng)建圓的、星形的窗口,也可以將它分為兩個或許多部分,實際上可以是任何的形狀。hwnd:要設(shè)置區(qū)域的窗口;hrgn:將要設(shè)置的區(qū)域句柄,一旦設(shè)置了該區(qū)域,就不能使用或修改該區(qū)域句柄,也不要刪除它;bredraw:若為true,則立即重畫窗口。setwindowrgn可與createellipticrgn、createroundrectrgn函數(shù)結(jié)合使用,用來進行窗體切割,使窗體只顯示創(chuàng)建區(qū)域部分的內(nèi)容,具體主要操作如下:hrgn_lng = createroundrectrgn(x1, y1, x2, y2, radius, radius)/設(shè)置窗口區(qū)域setwindowrgn formname.hwnd, hrgn_lng, true窗體切割前后效果對比如圖4-1和圖4-2所示。圖5-1 媒體列表窗體切割前效果圖 圖5-2 媒體列表窗體切割后效果圖2、為了方便用戶使用,要求點擊窗體任何“不觸發(fā)事件”的區(qū)域?qū)崿F(xiàn)窗體隨鼠標拖動。要實現(xiàn)此種操作,就必須時時向窗體發(fā)送消息,從而實現(xiàn)窗體移動。這里就需要使用sendmessage函數(shù)。為窗體注冊鼠標單擊觸發(fā)事件,在觸發(fā)函數(shù)中向窗體發(fā)送消息。function sendmessage lib user32 alias sendmessagea (byval hwnd as long, byval wmsg as long, byval wparam as long, lparam as any) as long該函數(shù)主要功能:該函數(shù)將指定的消息發(fā)送到一個或多個窗口,為指定的窗口調(diào)用窗口程序,直到窗口程序處理完消息再返回。hwnd:將接收消息的窗口句柄。如果此參數(shù)為hwnd_broadcast,則消息將被發(fā)送到系統(tǒng)中所有頂層窗口,包括無效或不可見的非自身擁有的窗口、被覆蓋的窗口和彈出式窗口,但消息不被發(fā)送到子窗口。返回值指定消息處理的結(jié)果,依賴于所發(fā)送的消息。wmsg:指定被發(fā)送的消息。wparam:指定附加的消息指定信息。iparam:指定附加的消息指定信息。本系統(tǒng)用此函數(shù)來實現(xiàn)用鼠標拖動窗體,詳細實現(xiàn)如下:public const wm_nclbuttondown = &ha1 public const htcaption = 2/設(shè)置消息常量值sendmessage me.hwnd, wm_nclbuttondown, htcaption, 0& /me指本窗體3、應(yīng)用程序最常用的基本操作之一就包括最小化系統(tǒng)托盤顯示,單擊最小化按扭,系統(tǒng)圖標將出現(xiàn)在系統(tǒng)托盤區(qū)域,雙擊托盤中的圖標,系統(tǒng)還原顯示。此功能的實現(xiàn)主要用到shell_notifyicon函數(shù),最小化時,系統(tǒng)主窗體隱藏,托盤區(qū)域添加該系統(tǒng)圖標;雙擊系統(tǒng)圖標,主窗體顯示,通知托盤刪除該系統(tǒng)圖標。function shell_notifyicon lib shell32.dll (byval dwmessage as long, lpdata as notifyicondata) as long該函數(shù)主要功能:用來添加、刪除、更改系統(tǒng)托盤區(qū)(taskbar status area)的圖標。dwmessage:為消息設(shè)置值,它可以是以下的常數(shù)值:0、1、2;nim_add = 0 /加入圖標到系統(tǒng)狀態(tài)欄中nim_modify = 1 /修改系統(tǒng)狀態(tài)欄中的圖標nim_delete = 2 /刪除系統(tǒng)狀態(tài)欄中的圖標lpdata:用以傳入notifyicondata數(shù)據(jù)結(jié)構(gòu)變量,其結(jié)構(gòu)如下所示:type notifyicondata cbsize as long /需填入notifyicondata數(shù)據(jù)結(jié)構(gòu)的長度 hwnd as long /設(shè)置成窗口的句柄 uid as long /為圖標所設(shè)置的id值 uflags as long /設(shè)置ucallbackmessage,hicon,sztip是否有效 ucallbackmessage as long /消息編號 hicon as long /顯示在狀態(tài)欄上的圖標 sztip as string * 64/提示信息end type5.1.2 基本播放處理模塊該模塊主要是用戶自定義的接口成員,是基層的功能函數(shù)接口,供上層模塊使用。下面介紹本系統(tǒng)主要的函數(shù)接口:1、窗體沒有修飾將會十分難看,現(xiàn)在常用的操作是窗體加上一層皮膚。對窗體來說,皮膚就是皮膚文件,它由一組圖片和包含圖片信息的xml文件組成。加載皮膚就是通過讀取皮膚xml文件來設(shè)置窗體元素的圖片屬性。其核心處理就是讀取皮膚xml文件,loadxmlskin為該處理的關(guān)鍵函數(shù)。function loadxmlskin(strskin as string) global root as ixmldomelement加載皮膚文件接口,供上層窗體綁定窗體皮膚元素,主要是對xml的操作,參數(shù)為皮膚文件路徑;root是全局變量,存儲xml根接點對象,實現(xiàn)如下:set skinxml = new domdocumentcall skinxml.load(“皮膚文件路徑”)set root = skinxml.documentelement/獲取根接點對象,使用根接點可遍歷所有接點。2、播放器啟動后,需要加載系統(tǒng)的基本狀態(tài)。這對于用戶來說是一個很實用的操作,用戶有用戶的使用習(xí)慣,每次關(guān)閉系統(tǒng),系統(tǒng)都將保存本次播放的狀態(tài)信息(當(dāng)前播放的列表、曲目、播放模式、顯示模式、顯示狀態(tài)等等),下次啟動系統(tǒng)自動加載上次的狀態(tài)信息,這是一個較為人性化的設(shè)計。狀態(tài)信息存儲在系統(tǒng)設(shè)置xml文件里面,通過loadplayersettings函數(shù)進行讀取。public sub loadplayersettings(node as ixmldomnode)加載播放器基本設(shè)置信息:歌詞窗體顯示狀態(tài)、播放列表窗體顯示狀態(tài)、播放模式、上次播放記錄(播放列表和播放曲目的記錄)、靜音狀態(tài)、顯示模式等。dim childnode as ixmldomnodefor each childnode in node.childnodes /遍歷根接點所有子接點 select case childnode.nodename /設(shè)置操作 end selectnext3、媒體列表播放主要是通過讀取列表文件中媒體文件的物理路徑進行播放,得到文件物理路徑實現(xiàn)的關(guān)鍵所在。public function getfilepath(strfilelist as string, index as integer) as string通過播放列表名和文件位置獲取播放列表中該文件的物理路徑,函數(shù)返回值為該文件的物理路徑,具體實現(xiàn)如下:open “媒體列表” for input lock write as #1 do while not eof(1) /循環(huán)至文件尾。 if num = index then line input #1, “播放文件路徑”/讀入一行數(shù)據(jù)并將其賦予某變量。 goto nextstep else num = num + 1 line input #1, textline end if loopclose #14、mp3是目前使用最為廣泛的媒體格式之一,也是本系統(tǒng)最主要支持的格式。讀取mp3文件信息可以使用戶直接的了解文件的相關(guān)說明信息。mp3文件由一系列長度不同的禎組成,在mp3文件的開始或結(jié)尾,通常會存儲一些額外的信息,如歌手,曲木目名等等,這些叫做“id3”數(shù)據(jù)。public function getmp3tag(fname as string) as mp3tag獲取mp3格式的文件信息,fname為mp3文件的物理路徑,返回值為自定義的結(jié)構(gòu)類型,該結(jié)構(gòu)類型用來存儲mp3文件的信息,其定義如下:public type mp3tag artist as string /存儲歌手信息 album as string /存儲唱片專輯信息 title as string /存儲標題信息 year as string /存儲年代信息 comments as string /存儲備注信息 genre as integer /存儲音樂風(fēng)格序列end typeglobal mp3infor as mp3tag /聲明一個該結(jié)構(gòu)變量具體獲取文件信息的方式如下:open “文件路徑” for binary access read as filenum/以二進制形式打開文件seek filenum, lof(filenum) - 127 /把文件指針移動到mp3信息處strinput = space(3)get filenum, , strinputif strinput tag then /如果沒有發(fā)現(xiàn)信息標識,就關(guān)閉文件 close filenum exitend ifstrinput = space(30)get filenum, , strinputtitle = trim(strinput) /讀取文件詳細信息close filenum5、如前面所提到的,退出系統(tǒng)時需要保存當(dāng)前系統(tǒng)狀態(tài)信息,這里用savesettings函數(shù)實現(xiàn)。public sub savesettings()退出播放系統(tǒng)時,保存本次播放的基本狀態(tài)信息,供下次使用系統(tǒng)時加載使用,這個函數(shù)沒有什么核心內(nèi)容,主要逐個獲取狀態(tài)信息,調(diào)用函數(shù)editnodevalue進行保存。private sub editnodevalue(strnodename as string, node as ixmldomnode, strtemp as string, strpsxml as string)在node節(jié)點下保存系統(tǒng)狀態(tài)信息,若存在節(jié)點,更新其值即可;若不存在,在node節(jié)點下新建節(jié)點進行賦值,保存退出即可。strnodename為狀態(tài)信息節(jié)點名,strtemp為節(jié)點值,strpsxml為xml文件物理路徑。該函數(shù)核心實現(xiàn)如下:if node.selectsinglenode(strnodename) is nothing then/若不存在,新建節(jié)點賦值保存 dim newnode as ixmldomnodeset newnode = node.ownerdocument.createelement(strnodename) node.appendchild newnode set newattribute = node.selectsinglenode(strnodename).ownerdocument.createattribute(value) newattribute.text = strtemp newnode.attributes.setnameditem (newattribute) node.ownerdocument.save strpsxmlelse node.selectsinglenode(strnodename).attributes.getnameditem(value).text = strtemp node.ownerdocument.save strpsxmlend if6、系統(tǒng)函數(shù)入口是系統(tǒng)運行的根基點,系統(tǒng)運行首先運行入口函數(shù)。public sub main()主函數(shù)入口:加載皮膚、加載系統(tǒng)基本信息、系統(tǒng)基本設(shè)置、啟動播放。具體實現(xiàn)如下:call loadxmlskin(orange) /加載皮膚文件on error goto errorset mpxml = new domdocumentcall mpxml.load(app.path & & playersettings.xml)/加載系統(tǒng)基本狀態(tài)信息文件dim root as ixmldomelement /xml文件根節(jié)點set roo
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版建筑工程施工監(jiān)理單位招標投標合同書3篇
- 二零二五版古籍文獻儲藏室修復(fù)合同3篇
- 二零二五年度高品質(zhì)膩子施工服務(wù)供應(yīng)合同2篇
- 二零二五版導(dǎo)游人員旅游安全責(zé)任合同3篇
- 小區(qū)車子棚施工合同(2篇)
- 2025年度新能源項目財務(wù)監(jiān)督出納人員擔(dān)保合同2篇
- 二零二五版車位購置及租賃合同樣本12篇
- 2025年度欠條收藏:古董字畫修復(fù)與交易合同3篇
- 二零二五年度高新技術(shù)項目研發(fā)團隊聘用合同范本3篇
- 二零二五年餐飲服務(wù)人員勞動合同樣本12篇
- 新教材人教版高中物理選擇性必修第二冊全冊各章節(jié)課時練習(xí)題及章末測驗含答案解析(安培力洛倫茲力電磁感應(yīng)交變電流等)
- 初級養(yǎng)老護理員培訓(xùn)全套
- 集中供熱管網(wǎng)系統(tǒng)一次網(wǎng)的調(diào)節(jié)方法
- GB/T 41095-2021機械振動選擇適當(dāng)?shù)臋C器振動標準的方法
- MRP、MPS計劃文檔教材
- 甲狀腺疾病護理查房課件
- 安全安全帶檢查記錄表
- GB∕T 26520-2021 工業(yè)氯化鈣-行業(yè)標準
- 2022年浙江省紹興市中考數(shù)學(xué)試題及參考答案
- Listen-to-this-3-英語高級聽力-(整理版)
- 生活垃圾焚燒處理建設(shè)項目評價導(dǎo)則(2022)
評論
0/150
提交評論