




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河南大學(xué)2007屆本科畢業(yè)論文基于activemovie組件的多媒體播放器的實(shí)現(xiàn) implementation of a multimedia player based on activemovie components 論文作者姓名:吳宏凱 所在學(xué)院:計(jì)算機(jī)與信息工程學(xué)院 所學(xué)專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 導(dǎo)師姓名職稱(chēng):于靜洋(講師) 論文完成時(shí)間:2007年5月20日 2007年5月20日河南大學(xué)2007屆畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)開(kāi)題報(bào)告(由學(xué)生本人認(rèn)真填寫(xiě))學(xué)號(hào)03023200姓名吳宏凱導(dǎo)師姓名職稱(chēng)于靜洋(講師)開(kāi)題時(shí)間2006年12月1日課題題目基于activemovie組件的多媒體播放器課題
2、來(lái)源導(dǎo)師指定 自定 其他來(lái)源課題的目的、意義以及和本課題有關(guān)的國(guó)內(nèi)外現(xiàn)狀分析:1、目的為了進(jìn)一步增加對(duì)多媒體知識(shí)的了解,進(jìn)一步熟悉多媒體編程方面的知識(shí),從而使自己在多媒體理論、編程實(shí)踐方面都有一個(gè)較大的提高。2、意義多媒體技術(shù)已經(jīng)成為當(dāng)今比較熱門(mén)的研究課題,因此掌握多媒體及多媒體技術(shù)的相關(guān)知識(shí),了解多媒體技術(shù)當(dāng)前的發(fā)展?fàn)顩r及未來(lái)的發(fā)展前景,并能熟練地進(jìn)行多媒體技術(shù)的開(kāi)發(fā),對(duì)于當(dāng)前即將畢業(yè)的大學(xué)生來(lái)講,是很有必要的。3、現(xiàn)狀多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍的技術(shù),是新一代電子技術(shù)發(fā)展和競(jìng)爭(zhēng)的焦點(diǎn),特別是伴隨著多媒體技術(shù)的網(wǎng)絡(luò)化,使得多媒體技術(shù)的發(fā)展前景無(wú)限廣闊。研究目標(biāo)、研究?jī)?nèi)容和準(zhǔn)
3、備解決的問(wèn)題:1、目標(biāo)設(shè)計(jì)出一款基于windows activemovie組件的、能播放大多主流媒體格式的、功能完善、使用方便的多媒體播放器。2、內(nèi)容了解windows activemove組件的功能、成員及應(yīng)用,熟悉播放器各個(gè)功能模塊及其實(shí)現(xiàn)過(guò)程,熟悉播放器的底層工作原理,熟悉activemovie組件的應(yīng)用,了解媒體編碼解碼原理。本播放器設(shè)計(jì)將不采用任何第三方控件,欲采用的是windows底層組件進(jìn)行解碼播放,該組件主要是支持mp3播放,所以必須對(duì)mp3音頻文件格式進(jìn)行了解,熟悉mp3編碼方式和文件結(jié)構(gòu),熟悉基于xml的更改皮膚原理。3、準(zhǔn)備解決的問(wèn)題(1)利用系統(tǒng)組件實(shí)現(xiàn)最基本的媒體播放
4、。(2)自己實(shí)現(xiàn)進(jìn)度條進(jìn)行播放控制、音量控制。(3)播放列表和播放模式控制。(4)同步歌詞顯示。(5)迷你播放器實(shí)現(xiàn)。(6)切割窗體。(7)最小化后系統(tǒng)托盤(pán)顯示。擬采取的方法、技術(shù)或設(shè)計(jì)(開(kāi)發(fā))工具: 本系統(tǒng)將采用visual basic 6.0開(kāi)發(fā)平臺(tái)預(yù)期成果:1、畢業(yè)設(shè)計(jì)成果基于activemovie組件的多媒體播放器2、畢業(yè)論文進(jìn)度計(jì)劃:2006.12.1 - 2007.1.15:查找資料、搜集相關(guān)素材 2006.1.16 - 2007.2.11:進(jìn)行項(xiàng)目的需求分析、概要設(shè)計(jì)2006.2.12 - 2007.4.1:實(shí)現(xiàn)主窗體和播放列表窗體的主要功能2007.4.2 - 2007.4.1
5、1:實(shí)現(xiàn)加載系統(tǒng)初始化狀態(tài)功能、實(shí)現(xiàn)皮膚更換功能、實(shí)現(xiàn)歌詞同步顯示功能2007.4.12 - 2007.4.21:實(shí)現(xiàn)迷你播放窗體功能、實(shí)現(xiàn)系統(tǒng)最小化托盤(pán)顯示功能2007.4.22 - 2007.4.30:完善系統(tǒng)功能并進(jìn)行系統(tǒng)功能測(cè)試2007.5.1 - 2007.5.20:整理資料、撰寫(xiě)畢業(yè)論文2007.5.20 - 2007.5.25:根據(jù)導(dǎo)師要求,完善畢業(yè)設(shè)計(jì)和論文指導(dǎo)教師對(duì)選題報(bào)告的意見(jiàn): 該生選題符合要求,進(jìn)度計(jì)劃安排合理,同意開(kāi)題。 指導(dǎo)教師簽名: 2006年12月1日河南大學(xué)2007屆畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)任務(wù)書(shū)(由學(xué)生本人認(rèn)真填寫(xiě))學(xué)號(hào)03023200姓名吳宏凱導(dǎo)師姓名于靜洋
6、任務(wù)書(shū)起止日期2006年12月8日 至 2007年5月20日論文提要:論文將以項(xiàng)目開(kāi)發(fā)為主線(xiàn),介紹基于activemovie組件的“多媒體播放器”實(shí)現(xiàn)的過(guò)程,文章內(nèi)容將主要包括項(xiàng)目設(shè)計(jì)開(kāi)發(fā)背景的介紹、相關(guān)多媒體理論應(yīng)用的介紹、基本播放功能的設(shè)計(jì)與實(shí)現(xiàn)、播放列表功能的設(shè)計(jì)與實(shí)現(xiàn)、歌詞顯示功能的設(shè)計(jì)與實(shí)現(xiàn)等等。課題任務(wù)要求:系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)要求必須熟悉多媒體相關(guān)理論知識(shí),熟悉visual basic 6.0開(kāi)發(fā)平臺(tái)的應(yīng)用,熟悉播放器實(shí)現(xiàn)的相關(guān)原理及其實(shí)現(xiàn)方法,了解windows api相關(guān)編程,熟悉windows activemove組件的功能、成員及應(yīng)用。主要目的就是以項(xiàng)目帶動(dòng)自己對(duì)相關(guān)知識(shí)的學(xué)
7、習(xí),使自己對(duì)多媒體軟件開(kāi)發(fā)有更加深刻、全面地認(rèn)識(shí)。最終基本實(shí)現(xiàn):主流播放器所有的基本功能能夠播放大多的媒體格式、能夠進(jìn)行各種播放控制、實(shí)現(xiàn)多媒體列表播放、實(shí)現(xiàn)歌詞同步顯示、能夠顯示媒體文件信息、能夠更改系統(tǒng)皮膚等等。主要參考文獻(xiàn):1 林福宗,多媒體技術(shù)基礎(chǔ),第2版,清華大學(xué)出版社,2002年9月2 鐘玉琢,多媒體計(jì)算機(jī)技術(shù)基礎(chǔ)及應(yīng)用,清華大學(xué)出版社,2006年2月3 ze-nian li等著,多媒體技術(shù)教程,機(jī)械工業(yè)出版社,2007年1月4 彭波等著,多媒體技術(shù)及應(yīng)用,機(jī)械工業(yè)出版社,2006年4月5 microsoft,msdn library visual studio 6.0(chs)6
8、 趙子江,多媒體技術(shù)應(yīng)用教程,第3版,機(jī)械工業(yè)出版社,2003年8月河南大學(xué)2007屆畢業(yè)設(shè)計(jì)(論文、創(chuàng)作)中期檢查表學(xué)院名稱(chēng):計(jì)算機(jī)與信息工程學(xué)院題目名稱(chēng)基于activemovie組件的多媒體播放器的實(shí)現(xiàn)學(xué)號(hào)03023200所學(xué)專(zhuān)業(yè)計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師姓 名于靜洋姓名吳宏凱一、畢業(yè)設(shè)計(jì)進(jìn)展情況完成了系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的前期準(zhǔn)備工作;完成了系統(tǒng)需求分析、概要設(shè)計(jì)階段的工作;進(jìn)入編碼實(shí)現(xiàn)階段,實(shí)現(xiàn)了主窗體(基本播放、基本播放控制)和播放列表窗體(媒體列表播放、播放列表操作新建、刪除、修改)的基本功能,實(shí)現(xiàn)了加載系統(tǒng)初始化狀態(tài)(播放狀態(tài)、顯示模式等)的功能,實(shí)現(xiàn)了更換系統(tǒng)皮膚、歌詞同步顯示功能。二、
9、存在問(wèn)題使用播放組件出現(xiàn)問(wèn)題,正常播放情況下,在用播放對(duì)象獲取相關(guān)播放信息(播放位置、播放音量等)時(shí)出現(xiàn)對(duì)象沒(méi)有相關(guān)屬性的異常,通過(guò)多次嘗試得以解決,原因是創(chuàng)建播放對(duì)象但還未開(kāi)始播放時(shí),不能獲取播放位置等信息,根本原因在于播放控制存在問(wèn)題,需要改進(jìn)。還有就是對(duì)用戶(hù)定制進(jìn)度條進(jìn)行控制播放還沒(méi)有特別清晰的思路。還沒(méi)有實(shí)現(xiàn)一句歌詞多個(gè)時(shí)間點(diǎn)歌詞文件的同步顯示。三、下一階段的研究方法或設(shè)計(jì)思路完善主播放窗體(實(shí)現(xiàn)自己定制的進(jìn)度條控制)和播放列表窗體的功能,完善歌詞同步顯示功能,實(shí)現(xiàn)迷你模式播放,完成獲取媒體文件信息、最小化系統(tǒng)托盤(pán)顯示等功能,在時(shí)間允許的情況下進(jìn)行相關(guān)功能拓展。整個(gè)設(shè)計(jì)思路類(lèi)似快速原型
10、法的工程實(shí)現(xiàn),先實(shí)現(xiàn)基礎(chǔ)功能,進(jìn)而進(jìn)行相關(guān)功能拓展,由最根本處底層實(shí)現(xiàn)向用戶(hù)功能視角功能設(shè)計(jì)與實(shí)現(xiàn)。四、指導(dǎo)教師對(duì)學(xué)生設(shè)計(jì)(論文、創(chuàng)作)進(jìn)展等方面的評(píng)語(yǔ) 該生基本能按計(jì)劃進(jìn)度完成任務(wù),進(jìn)度比較合理,自評(píng)內(nèi)容與實(shí)際相符,實(shí)際的功能還存在一些問(wèn)題,需要改進(jìn)。 指導(dǎo)教師簽字: 2007年 4月10日 河南大學(xué)2007屆畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)綜合成績(jī)表(一)學(xué)院名稱(chēng):計(jì)算機(jī)與信息工程學(xué)院學(xué) 號(hào)03023200姓名吳宏凱專(zhuān)業(yè)計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師于靜洋(講師)綜合得分85論文題目基于activemovie組件的多媒體播放器的實(shí)現(xiàn)指導(dǎo)教師評(píng)語(yǔ)及得分指導(dǎo)教師評(píng)語(yǔ) 該生立題有新意,設(shè)計(jì)功能比較完善,論文重點(diǎn)
11、突出,語(yǔ)句流暢,思路清晰,能夠明確表達(dá)系統(tǒng)的功能,內(nèi)容與設(shè)計(jì)相符,符合要求。評(píng)分項(xiàng)目分值指導(dǎo)教師對(duì)畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)評(píng)分撰寫(xiě)開(kāi)題報(bào)告、文獻(xiàn)綜述15調(diào)查研究查閱整理資料10學(xué)習(xí)態(tài)度與規(guī)范要求10數(shù)據(jù)處理、文字表達(dá)10論文(設(shè)計(jì)、創(chuàng)作)質(zhì)量和創(chuàng)新意識(shí)55合計(jì)100得分118885085指導(dǎo)教師簽名 2007年5月20日評(píng)閱教師評(píng)語(yǔ)及評(píng)分評(píng)閱教師評(píng)語(yǔ) 該生立題有新意,設(shè)計(jì)功能較完善,論文重點(diǎn)突出,語(yǔ)句流暢,思路清晰,能明確表達(dá)系統(tǒng)的功能,內(nèi)容與設(shè)計(jì)相符,符合要求。評(píng)分項(xiàng)目分值評(píng)閱畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)評(píng)分撰寫(xiě)開(kāi)題報(bào)告、文獻(xiàn)綜述15調(diào)查研究查閱整理資料10學(xué)習(xí)態(tài)度與規(guī)范要求10數(shù)據(jù)處理、文字表達(dá)1
12、0論文(設(shè)計(jì)、創(chuàng)作)質(zhì)量和創(chuàng)新意識(shí)55合計(jì)100得分128885086評(píng)閱教師簽名 2007年5月22日河南大學(xué)2007屆畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)綜合成績(jī)表(二)學(xué)號(hào)03023200姓名吳宏凱所在學(xué)院計(jì)算機(jī)與信息工程學(xué)院答辯委員會(huì)評(píng)語(yǔ)及評(píng)分答辯委員會(huì)評(píng)語(yǔ) 該生思路清晰敏捷,語(yǔ)言流暢,對(duì)問(wèn)題的闡述清晰明了,回答正確,達(dá)到本科畢業(yè)水平。答辯委員簽字: 2007年5月26日評(píng)分 項(xiàng)目 分值論文答辯小組評(píng)分答辯情況論文質(zhì)量合計(jì)(100)內(nèi)容表達(dá)情況(15)答辯問(wèn)題情況(25)規(guī)范要求與文字表達(dá)(20)論文(設(shè)計(jì)、創(chuàng)作)質(zhì)量和創(chuàng)新意識(shí)(40)得分112216 3685答辯委員會(huì)主任簽字: 2007年5月2
13、6日畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)成績(jī)綜合評(píng)定: 85 分綜合評(píng)定等級(jí):良備注:一、論文的質(zhì)量評(píng)定,應(yīng)包括對(duì)論文的語(yǔ)言表達(dá)、結(jié)構(gòu)層次、邏輯性理論分析、設(shè)計(jì)計(jì)算、分析和概括能力及在論文中是否有新的見(jiàn)解或創(chuàng)新性成果等做出評(píng)價(jià)。從論文來(lái)看學(xué)生掌握本專(zhuān)業(yè)基礎(chǔ)理論和基本技能的程度。二、成績(jī)?cè)u(píng)定采用結(jié)構(gòu)評(píng)分法,即由指導(dǎo)教師、評(píng)閱教師和答辯委員會(huì)分別給分(以百分計(jì)),評(píng)閱教師得分乘以20%加上指導(dǎo)教師得分乘以20%加上答辯委員會(huì)得分乘以60%即綜合成績(jī)。評(píng)估等級(jí)按優(yōu)、良、中、差劃分,優(yōu)90-100分;良76-89分;中60-75分;差60分以下。三、評(píng)分由專(zhuān)業(yè)教研室或院組織專(zhuān)門(mén)評(píng)分小組(不少于5人),根據(jù)指導(dǎo)教師和
14、答辯委員會(huì)意見(jiàn)決定每個(gè)學(xué)生的分?jǐn)?shù),在有爭(zhēng)議時(shí),應(yīng)由答辯委員會(huì)進(jìn)行表決。四、畢業(yè)論文答辯工作結(jié)束后,各院應(yīng)于6月20日前向教務(wù)處推薦優(yōu)秀論文以匯編成冊(cè),推薦的篇數(shù)為按當(dāng)年學(xué)院畢業(yè)生人數(shù)的1.5%篇。五、各院亦可根據(jù)本專(zhuān)業(yè)的不同情況,制定相應(yīng)的具有自己特色的內(nèi)容。須報(bào)教務(wù)處備案。六、書(shū)寫(xiě)格式要求:1、目錄;2、內(nèi)容提要須書(shū)寫(xiě)200左右漢字,開(kāi)題報(bào)告(文科除外)的內(nèi)容要根據(jù)不同專(zhuān)業(yè)的課題任務(wù)要求,闡述查閱文獻(xiàn)、文案論證、解題思路、工作步驟等;3、正文(含引言、結(jié)論等);4、參考文獻(xiàn)(或資料)河南大學(xué)本科生畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)承諾書(shū)論文題目基于activemovie組件的多媒體播放器的實(shí)現(xiàn)姓 名吳宏
15、凱所學(xué)專(zhuān)業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué) 號(hào)03023200完成時(shí)間.2007年5 月20日指導(dǎo)教師姓名職稱(chēng)于靜洋(講師)承諾內(nèi)容:1、本畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)是學(xué)生 吳宏凱 在導(dǎo)師 于靜洋 的指導(dǎo)下獨(dú)立完成的,沒(méi)有抄襲、剽竊他人成果,沒(méi)有請(qǐng)人代做,若在畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)的各種檢查、評(píng)比中被發(fā)現(xiàn)有以上行為,愿按學(xué)校有關(guān)規(guī)定接受處理,并承擔(dān)相應(yīng)的法律責(zé)任。2、學(xué)校有權(quán)保留并向上級(jí)有關(guān)部門(mén)送交本畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)的復(fù)印件和磁盤(pán)。備注:學(xué)生簽名: 指導(dǎo)教師簽名: 2007年5月20日 2007年5月20日說(shuō)明:學(xué)生畢業(yè)論文(設(shè)計(jì)、創(chuàng)作)如有保密等要求,請(qǐng)?jiān)趥渥⒅忻鞔_,承諾內(nèi)容第2條即以備注為準(zhǔn)。目 錄摘
16、 要iabstractii第1章 緒論11.1 多媒體的定義11.2 多媒體技術(shù)的發(fā)展現(xiàn)狀2第2章 開(kāi)發(fā)環(huán)境和相關(guān)技術(shù)介紹32.1 系統(tǒng)開(kāi)發(fā)環(huán)境32.2 相關(guān)開(kāi)發(fā)技術(shù)3第3章 系統(tǒng)需求分析53.1 系統(tǒng)界面需求53.2 系統(tǒng)功能需求5第4章 系統(tǒng)概要設(shè)計(jì)74.1 系統(tǒng)整體結(jié)構(gòu)74.2 系統(tǒng)功能流程8第5章 系統(tǒng)詳細(xì)設(shè)計(jì)與編碼實(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參考文獻(xiàn)22摘 要多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍
17、的技術(shù),是當(dāng)前人們關(guān)注的熱點(diǎn)技術(shù)之一,是新一代電子技術(shù)發(fā)展和競(jìng)爭(zhēng)的焦點(diǎn)。與多媒體技術(shù)發(fā)展密切相關(guān)的就是多媒體播放平臺(tái),它是多媒體技術(shù)的一個(gè)重要的分支,是人們暢游媒體信息世界的主要渠道。本文實(shí)現(xiàn)了一個(gè)基于activemovie組件的多媒體播放器。主要實(shí)現(xiàn)的功能包括:支持目前多數(shù)格式的媒體文件,基本的播放控制功能,支持多媒體播放列表,同步歌詞顯示,曲目信息顯示等。該系統(tǒng)是在visual studio 6.0開(kāi)發(fā)平臺(tái)上開(kāi)發(fā)的,是基于visual basic語(yǔ)言編寫(xiě)的。關(guān)鍵詞 多媒體技術(shù),播放平臺(tái),組件,接口函數(shù)abstractmultimedia technology is the fastest-
18、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 technol
19、ogy 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 fil
20、e 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第1章 緒論多媒體技術(shù)的快速發(fā)展使人們?cè)俅晤I(lǐng)
21、略到計(jì)算機(jī)技術(shù)的巨大魅力,它大大地拓展了計(jì)算機(jī)的應(yīng)用領(lǐng)域,使計(jì)算機(jī)從辦公室、實(shí)驗(yàn)室等狹小的領(lǐng)域空間走向平民大眾,成為信息社會(huì)的普通應(yīng)用工具,廣泛地充斥著社會(huì)生產(chǎn)生活的每一個(gè)角落。在這一進(jìn)程中,多媒體播放平臺(tái)功不可沒(méi),借助高速發(fā)展的互聯(lián)網(wǎng)絡(luò),各式各樣的媒體播放器將多媒體的概念帶進(jìn)了人們的感官世界,潛移默化的影響著人們的生產(chǎn)和生活。1.1 多媒體的定義多媒體是融合兩種或者兩種以上媒體的一種人-機(jī)交互式信息交流和傳播媒體,使用的媒體包括文字、圖形、圖像、聲音、動(dòng)畫(huà)和電視圖像等。它是一門(mén)綜合技術(shù),所以又稱(chēng)之為多媒體技術(shù)。多媒體技術(shù)的概念起源于20世紀(jì)80年代初期,真正的發(fā)展是在90年代。多媒體是在計(jì)算
22、機(jī)技術(shù)、通訊網(wǎng)絡(luò)技術(shù)、大眾傳媒技術(shù)等現(xiàn)代信息技術(shù)不斷進(jìn)步的條件下,由多個(gè)學(xué)科不斷融合,相互促進(jìn)而產(chǎn)生出來(lái)的,它是信息技術(shù)應(yīng)用發(fā)展的必然。進(jìn)入90年代,由于“信息高速公路”計(jì)劃的興起、互聯(lián)網(wǎng)絡(luò)的廣泛應(yīng)用,大大刺激了多媒體信息產(chǎn)業(yè)的發(fā)展,在全球掀起一股家電行業(yè)、有線(xiàn)電視網(wǎng)絡(luò)、娛樂(lè)行業(yè)、計(jì)算機(jī)工業(yè)及通訊行業(yè)相互兼并、聯(lián)合組網(wǎng)的浪潮,人們開(kāi)始步入真正的“多媒體時(shí)代”。相關(guān)行業(yè)的大規(guī)模兼并聯(lián)合,大造了新一代的信息領(lǐng)域,產(chǎn)生了嶄新的信息社會(huì)概念,同時(shí)也創(chuàng)造了無(wú)窮的機(jī)遇和潛在的巨大的市場(chǎng)空間。之后伴隨著計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)字電視技術(shù)和通訊技術(shù)的快速發(fā)展,信息技術(shù)領(lǐng)域中的多媒體技術(shù)成為新一代電子技術(shù)發(fā)展和競(jìng)爭(zhēng)的聚焦
23、點(diǎn)。1.2 多媒體技術(shù)的發(fā)展現(xiàn)狀多媒體技術(shù)的交互性向用戶(hù)提供更加有效的控制和使用信息的手段。而多媒體播放平臺(tái)則是交互這一特性實(shí)現(xiàn)的一種重要的途徑。播放平臺(tái)是多媒體技術(shù)應(yīng)用的重要部分,是多媒體技術(shù)的展示舞臺(tái),是人們走進(jìn)多媒體世界的主要橋梁。各式各樣的媒體播放器將人們與多媒體聯(lián)系的日益緊密,使多媒體技術(shù)真正地走向大眾化。伴隨著多媒體技術(shù)的快速發(fā)展,各式各樣的多媒體播放器也應(yīng)運(yùn)而生?,F(xiàn)存的主流播放器大致可以分為兩大類(lèi)視頻播放器和音頻播放器。這里是從用戶(hù)的使用習(xí)慣去劃分的,實(shí)際上很多播放器都可以支持大多的媒體格式,它們不僅僅支持音頻的播放、還支持視頻的播放。但因設(shè)計(jì)的側(cè)重點(diǎn)不同,用戶(hù)對(duì)它們使用的也存在
24、差異,比如說(shuō)ttplayer可用來(lái)進(jìn)行音頻播放,它以其小巧方便、外觀(guān)漂亮等特點(diǎn)成為很多用戶(hù)播放音頻的不二之選,它同樣支持視頻的處理,但卻沒(méi)有圖像顯示,這里可以看得出開(kāi)發(fā)者對(duì)它的設(shè)計(jì)定位;mpc(media player classic)常被用來(lái)播放視頻,它幾乎支持所有的媒體格式,播放視頻尤為快捷方便,因此成為很多用戶(hù)播放視頻的首選,但卻很少被用來(lái)播放音頻。這就是播放器設(shè)計(jì)定位的不同對(duì)用戶(hù)使用習(xí)慣的影響,也是用戶(hù)不同使用需求的必然所致。本播放系統(tǒng)的開(kāi)發(fā)正是基于以上的考慮和分析去進(jìn)行的,力圖在音頻播放和視頻播放上都去竭力滿(mǎn)足用戶(hù)使用的需求,力求兼顧當(dāng)前主流播放器在音頻播放和視頻播放方面的各自?xún)?yōu)點(diǎn),
25、力保在使用上去迎合用戶(hù)的習(xí)慣。第2章 開(kāi)發(fā)環(huán)境和相關(guān)技術(shù)介紹系統(tǒng)的開(kāi)發(fā)離不開(kāi)對(duì)開(kāi)發(fā)環(huán)境的了解和對(duì)相應(yīng)開(kāi)發(fā)技術(shù)的學(xué)習(xí),開(kāi)發(fā)環(huán)境是實(shí)現(xiàn)系統(tǒng)開(kāi)發(fā)的前提,開(kāi)發(fā)技術(shù)則是實(shí)現(xiàn)系統(tǒng)功能的根本。下面將分兩節(jié)介紹本系統(tǒng)的開(kāi)發(fā)環(huán)境和主要的開(kāi)發(fā)技術(shù)。2.1 系統(tǒng)開(kāi)發(fā)環(huán)境本系統(tǒng)是在microsoft windows nt操作系統(tǒng)上采用vb6.0開(kāi)發(fā)平臺(tái)進(jìn)行開(kāi)發(fā)的,使用的語(yǔ)言是visual basic(以下簡(jiǎn)稱(chēng)vb)。之所以采用vb6.0開(kāi)發(fā)平臺(tái),主要是考慮該平臺(tái)開(kāi)發(fā)應(yīng)用程序的便捷性、高效性。vb6.0強(qiáng)大的圖形圖象處理技術(shù)、文件處理技術(shù)、多媒體處理技術(shù)、sdi和mdi等窗體編程技巧、方便的windows api函數(shù)使
26、用,使它成為開(kāi)發(fā)windows應(yīng)用程序的主要選擇之一。vb6.0開(kāi)發(fā)平臺(tái)是microsoft公司推出的可視化開(kāi)發(fā)工具,利用vb6.0可以開(kāi)發(fā)基于windows平臺(tái)的應(yīng)用程序,依靠強(qiáng)大的編譯器及網(wǎng)絡(luò)與數(shù)據(jù)庫(kù)的開(kāi)發(fā)能力,用vb6.0可以開(kāi)發(fā)出功能強(qiáng)大的應(yīng)用程序。vb繼承了basic語(yǔ)言的簡(jiǎn)單、高效、代碼結(jié)構(gòu)清晰、可讀性好、并且容入了面向?qū)ο?、可視化、事件?qū)動(dòng)等軟件開(kāi)發(fā)技術(shù),使basic語(yǔ)言編程發(fā)展到了一個(gè)新的高度。vb6.0以其簡(jiǎn)單易用、功能強(qiáng)大、開(kāi)發(fā)效率高的顯著特點(diǎn),得到眾多程序員的青睞,在眾多開(kāi)發(fā)平臺(tái)中占據(jù)著重要的地位。2.2 相關(guān)開(kāi)發(fā)技術(shù)本系統(tǒng)的核心功能是基于quartz.dll、msxml
27、3.dll等windows系統(tǒng)組件實(shí)現(xiàn)的。在windowssystem32下可找到一個(gè)動(dòng)態(tài)鏈接庫(kù)quartz.dll,這是windows中提供的用于控制運(yùn)動(dòng)圖像播放的一個(gè)類(lèi)型庫(kù),只要在vb的“工程-引用”菜單中將它添加“activemovie control type library”即可。該庫(kù)中定義了ibasicaudio,ibasicvideo和ibasicvideo2,imediaevent,imediaeventex和imediaposition等類(lèi)。可在相關(guān)控件的click等事件中添加代碼設(shè)置和audio的相關(guān)值,設(shè)置或讀取video的輸入輸出源的相關(guān)參數(shù);可以直接調(diào)用無(wú)參函數(shù)run
28、、pause、stop的控制播放事件進(jìn)程;利用imediaposition類(lèi)對(duì)具體播放細(xì)節(jié)進(jìn)行操作。xml可擴(kuò)展標(biāo)記語(yǔ)言(extensible markup language)萬(wàn)維網(wǎng)協(xié)會(huì)(w3c)推薦的一個(gè)開(kāi)放標(biāo)準(zhǔn),它是構(gòu)造web上的文檔和數(shù)據(jù)通用格式。xml在windows項(xiàng)目開(kāi)發(fā)中有著舉足輕重的重要地位,主要是用來(lái)存儲(chǔ)項(xiàng)目關(guān)鍵的信息,類(lèi)似于數(shù)據(jù)庫(kù)系統(tǒng),但是從應(yīng)用來(lái)講確是更加的靈活、方便。vb中操作xml文檔,必須要導(dǎo)入windowssystem32下的動(dòng)態(tài)鏈接庫(kù)msxml3.dll,該系統(tǒng)組件主要提供xml文檔的操作和使用接口。如何添加引用動(dòng)態(tài)鏈接庫(kù)如圖2-1所示。圖2-1 添加系統(tǒng)引用示
29、例圖xml文檔最主要的操作是對(duì)文檔節(jié)點(diǎn)的操作。讀取操作是最基本、最常用的操作,通常是聲明一個(gè)domdocument對(duì)象,然后通過(guò)lode函數(shù)加載的相應(yīng)xml文檔,再由domdocument對(duì)象獲取文檔根節(jié)點(diǎn),再通過(guò)根節(jié)點(diǎn)去獲取其子節(jié)點(diǎn),由子節(jié)點(diǎn)獲取其節(jié)點(diǎn)值或?qū)傩灾?,整個(gè)讀取過(guò)程就是樹(shù)的遍歷,可以根據(jù)不同的需要采用不同的遍歷方式。 第3章 系統(tǒng)需求分析需求分析是對(duì)用戶(hù)需求的真正明確,是對(duì)要解決的問(wèn)題的全面理解,它是界于系統(tǒng)分析和軟件設(shè)計(jì)階段的重要橋梁。本章將從界面和功能兩個(gè)方面的需求來(lái)進(jìn)行分析。3.1 系統(tǒng)界面需求隨著多媒體播放軟件的發(fā)展,用戶(hù)對(duì)播放軟件界面提出了更高的要求。用戶(hù)對(duì)界面的需求不僅
30、僅再局限于簡(jiǎn)潔、易操作等特點(diǎn),還更加傾向于美觀(guān)、人性化、個(gè)性化等要求。本系統(tǒng)基于以上需求做出以下分析: 1、能夠多窗口顯示,用戶(hù)可以根據(jù)自己的需要關(guān)閉不使用的窗口,這樣可以有效地節(jié)省界面空間,從而使界面顯得小巧玲瓏、簡(jiǎn)潔、美觀(guān)。2、能夠更換界面風(fēng)格,用戶(hù)可以根據(jù)自己的習(xí)慣更換個(gè)性化的界面風(fēng)格,從而使界面顯示風(fēng)格多樣化,更能滿(mǎn)足不同用戶(hù)的需要。3、能夠變換顯示模式,顯示模式包括普通顯示、迷你顯示、最小化顯示。普通顯示是正常的顯示狀態(tài),迷你顯示更小巧簡(jiǎn)潔的顯示,最小化顯示是系統(tǒng)任務(wù)欄顯示。3.2 系統(tǒng)功能需求依據(jù)當(dāng)前的多媒體播放的主流需求,本系統(tǒng)首先要考慮以下基本功能需求:1、首先能夠播放當(dāng)前的大
31、多數(shù)格式的媒體文件,主要包括mp3、wma、avi、mepg、rmvb等格式文件。2、能夠進(jìn)行基本的播放控制,播放控制包括“進(jìn)度控制”、“音量控制”、“播放狀態(tài)控制”(靜音、暫停、停止)、“曲目選擇”、“更改播放模式”(包括單曲播放、單曲循環(huán)、順序播放、循環(huán)播放、隨機(jī)播放五種模式)等基本操作。3、要支持媒體列表的播放,能夠進(jìn)行基本的列表操作,包括“新建列表”、“刪除列表”、“重命名列表”、“添加媒體文件至列表”、“從列表刪除媒體文件”等操作,能夠顯示所有播放列表,能夠顯示當(dāng)前選中列表的所有媒體文件。4、能夠進(jìn)行同步歌詞顯示,主要是音頻文件歌詞的同步顯示。同步顯示主要指歌詞顯示內(nèi)容與音頻播放進(jìn)度
32、保持同步。5、能夠進(jìn)行曲目信息顯示,主要是mp3格式文件的曲目信息顯示,通常包括歌手名、專(zhuān)輯名、發(fā)行時(shí)間等常用信息。第4章 系統(tǒng)概要設(shè)計(jì)概要設(shè)計(jì)是將系統(tǒng)需求轉(zhuǎn)換為未來(lái)系統(tǒng)的設(shè)計(jì),本章著重講述了系統(tǒng)整體結(jié)構(gòu)和功能流程設(shè)計(jì)。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接口成員,用戶(hù)自定義接口成員,系統(tǒng)全局變量。歌詞資源區(qū):存放所有歌詞文件。播放列表區(qū):存放所有歌曲列表。皮膚
33、文件區(qū):存放所有窗體皮膚文件。功能窗體區(qū)是系統(tǒng)的核心,接口模塊區(qū)是系統(tǒng)的底層,其他三塊都可視為資源區(qū),功能窗體區(qū)和接口模塊區(qū)對(duì)資源去進(jìn)行使用,從而實(shí)現(xiàn)更加完善的功能。功能窗體區(qū)主要是各個(gè)窗體具體功能的實(shí)現(xiàn),接口模塊區(qū)主要是公共功能的實(shí)現(xiàn),功能窗體區(qū)通過(guò)調(diào)用接口模塊區(qū)所提供的公共接口來(lái)實(shí)現(xiàn)相應(yīng)的功能。功能窗體區(qū)是系統(tǒng)資源的主要調(diào)用者,是用戶(hù)直接面向的區(qū)域模塊,位于系統(tǒng)最上層。4.2 系統(tǒng)功能流程根據(jù)前階段的需求分析和系統(tǒng)結(jié)構(gòu)設(shè)計(jì)來(lái)進(jìn)行系統(tǒng)功能流程的分析。系統(tǒng)總體功能流程為:?jiǎn)?dòng)播放器,加載基本狀態(tài)信息,然后用加載的信息進(jìn)行初始化設(shè)置,進(jìn)行文件播放,播放過(guò)程中用戶(hù)可以進(jìn)行各種窗體操作,用戶(hù)使用結(jié)束
34、,執(zhí)行關(guān)閉系統(tǒng)操作,系統(tǒng)退出前進(jìn)行當(dāng)前播放基本狀態(tài)信息保存,保存成功后正常退出系統(tǒng)。圖4-2 系統(tǒng)流程圖系統(tǒng)總體功能流程如圖4-2所示。加載基本狀態(tài)信息:系統(tǒng)讀取皮膚文件和系統(tǒng)配置文件,然后將讀取的信息提交系統(tǒng)設(shè)置模塊,設(shè)置模塊再進(jìn)行相關(guān)初始化設(shè)置。具體操作如圖4-3所示。初始化設(shè)置:使用加載的信息設(shè)置系統(tǒng)皮膚、設(shè)置系統(tǒng)基本狀態(tài)信息。設(shè)置皮膚是用讀取的皮膚文件信息來(lái)設(shè)置窗體和窗體元素的圖片、坐標(biāo)位置。設(shè)置基本狀態(tài)信息包括窗體顯示設(shè)置(包括播放列表和歌詞顯示窗體)、播放列表設(shè)置(設(shè)置所要播放的播放列表)、播放文件設(shè)置(設(shè)置所要播放的播放文件)、播放音量設(shè)置、播放模式設(shè)置(普通模式、迷你模式、最小
35、化模式)、靜音狀態(tài)設(shè)置。主窗體操作:包括播放系統(tǒng)的所有操作,包括播放控制操作、顯示模式操作、皮膚選擇操作等。圖4-3 加載系統(tǒng)基本狀態(tài)信息數(shù)據(jù)流圖第5章 系統(tǒng)詳細(xì)設(shè)計(jì)與編碼實(shí)現(xiàn)依據(jù)以上章節(jié)的需求分析和概要設(shè)計(jì)我們了解到系統(tǒng)包含五大模塊。各種功能的實(shí)現(xiàn)都是基于這五個(gè)模塊的,所以本章節(jié)主要通過(guò)系統(tǒng)的這幾個(gè)功能模塊來(lái)介紹系統(tǒng)的詳細(xì)設(shè)計(jì)及編碼實(shí)現(xiàn),其中功能窗體區(qū)和接口模塊區(qū)是描述的重點(diǎn)。5.1 接口模塊區(qū)接口模塊是整個(gè)多媒體播放系統(tǒng)的基礎(chǔ),它提供了公共功能實(shí)現(xiàn)的主要程序接口。系統(tǒng)又把該模塊細(xì)分為兩個(gè)子模塊windows api模塊和基本播放處理模塊。 5.1.1 windows api模塊該子模塊用來(lái)
36、聲明系統(tǒng)所要使用的windows api函數(shù),聲明之后系統(tǒng)就可以直接使用。下面介紹一下本系統(tǒng)所使用的部分api函數(shù)和使用他們的設(shè)計(jì)考慮:1、窗體默認(rèn)情況下是以矩形顯示的,為了使窗體顯示更加新穎、美觀(guān),可以使用系統(tǒng)提供的接口函數(shù)對(duì)窗體進(jìn)行切割處理,從而顯示出設(shè)計(jì)者或用戶(hù)所追求的種種效果。本系統(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,
37、byval y2 as long, byval x3 as long, byval y3 as long) as long該函數(shù)主要功能:用來(lái)創(chuàng)建一個(gè)圓角矩形,該矩形由(x1,y1)-(x2,y2)確定,(x3,y3)用來(lái)確定的橢圓描述圓角弧度。返回值類(lèi)型也為long,執(zhí)行成功則為區(qū)域句柄,失敗則為零。function setwindowrgn lib user32 (byval hwnd as long,byval hrgn as long, byval bredraw as boolean) as long該函數(shù)主要功能:允許您改變窗口的區(qū)域。通常所有窗口都是矩形的,窗口一旦存在就含有一個(gè)
38、矩形區(qū)域。本函數(shù)允許您放棄該區(qū)域。這意味著您可以創(chuàng)建圓的、星形的窗口,也可以將它分為兩個(gè)或許多部分,實(shí)際上可以是任何的形狀。hwnd:要設(shè)置區(qū)域的窗口;hrgn:將要設(shè)置的區(qū)域句柄,一旦設(shè)置了該區(qū)域,就不能使用或修改該區(qū)域句柄,也不要?jiǎng)h除它;bredraw:若為true,則立即重畫(huà)窗口。setwindowrgn可與createellipticrgn、createroundrectrgn函數(shù)結(jié)合使用,用來(lái)進(jìn)行窗體切割,使窗體只顯示創(chuàng)建區(qū)域部分的內(nèi)容,具體主要操作如下:hrgn_lng = createroundrectrgn(x1, y1, x2, y2, radius, radius)/設(shè)置窗
39、口區(qū)域setwindowrgn formname.hwnd, hrgn_lng, true窗體切割前后效果對(duì)比如圖4-1和圖4-2所示。圖5-1 媒體列表窗體切割前效果圖 圖5-2 媒體列表窗體切割后效果圖2、為了方便用戶(hù)使用,要求點(diǎn)擊窗體任何“不觸發(fā)事件”的區(qū)域?qū)崿F(xiàn)窗體隨鼠標(biāo)拖動(dòng)。要實(shí)現(xiàn)此種操作,就必須時(shí)時(shí)向窗體發(fā)送消息,從而實(shí)現(xiàn)窗體移動(dòng)。這里就需要使用sendmessage函數(shù)。為窗體注冊(cè)鼠標(biāo)單擊觸發(fā)事件,在觸發(fā)函數(shù)中向窗體發(fā)送消息。function sendmessage lib user32 alias sendmessagea (byval hwnd as long, byval w
40、msg as long, byval wparam as long, lparam as any) as long該函數(shù)主要功能:該函數(shù)將指定的消息發(fā)送到一個(gè)或多個(gè)窗口,為指定的窗口調(diào)用窗口程序,直到窗口程序處理完消息再返回。hwnd:將接收消息的窗口句柄。如果此參數(shù)為hwnd_broadcast,則消息將被發(fā)送到系統(tǒng)中所有頂層窗口,包括無(wú)效或不可見(jiàn)的非自身?yè)碛械拇翱?、被覆蓋的窗口和彈出式窗口,但消息不被發(fā)送到子窗口。返回值指定消息處理的結(jié)果,依賴(lài)于所發(fā)送的消息。wmsg:指定被發(fā)送的消息。wparam:指定附加的消息指定信息。iparam:指定附加的消息指定信息。本系統(tǒng)用此函數(shù)來(lái)實(shí)現(xiàn)用鼠標(biāo)拖
41、動(dòng)窗體,詳細(xì)實(shí)現(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)托盤(pán)顯示,單擊最小化按扭,系統(tǒng)圖標(biāo)將出現(xiàn)在系統(tǒng)托盤(pán)區(qū)域,雙擊托盤(pán)中的圖標(biāo),系統(tǒng)還原顯示。此功能的實(shí)現(xiàn)主要用到shell_notifyicon函數(shù),最小化時(shí),系統(tǒng)主窗體隱藏,托盤(pán)區(qū)域添加該系統(tǒng)圖標(biāo);雙擊系統(tǒng)圖標(biāo),主窗體顯示,通知托盤(pán)刪除該系統(tǒng)圖標(biāo)。function sh
42、ell_notifyicon lib shell32.dll (byval dwmessage as long, lpdata as notifyicondata) as long該函數(shù)主要功能:用來(lái)添加、刪除、更改系統(tǒng)托盤(pán)區(qū)(taskbar status area)的圖標(biāo)。dwmessage:為消息設(shè)置值,它可以是以下的常數(shù)值:0、1、2;nim_add = 0 /加入圖標(biāo)到系統(tǒng)狀態(tài)欄中nim_modify = 1 /修改系統(tǒng)狀態(tài)欄中的圖標(biāo)nim_delete = 2 /刪除系統(tǒng)狀態(tài)欄中的圖標(biāo)lpdata:用以傳入notifyicondata數(shù)據(jù)結(jié)構(gòu)變量,其結(jié)構(gòu)如下所示:type notif
43、yicondata cbsize as long /需填入notifyicondata數(shù)據(jù)結(jié)構(gòu)的長(zhǎng)度 hwnd as long /設(shè)置成窗口的句柄 uid as long /為圖標(biāo)所設(shè)置的id值 uflags as long /設(shè)置ucallbackmessage,hicon,sztip是否有效 ucallbackmessage as long /消息編號(hào) hicon as long /顯示在狀態(tài)欄上的圖標(biāo) sztip as string * 64/提示信息end type5.1.2 基本播放處理模塊該模塊主要是用戶(hù)自定義的接口成員,是基層的功能函數(shù)接口,供上層模塊使用。下面介紹本系統(tǒng)主要的函
44、數(shù)接口:1、窗體沒(méi)有修飾將會(huì)十分難看,現(xiàn)在常用的操作是窗體加上一層皮膚。對(duì)窗體來(lái)說(shuō),皮膚就是皮膚文件,它由一組圖片和包含圖片信息的xml文件組成。加載皮膚就是通過(guò)讀取皮膚xml文件來(lái)設(shè)置窗體元素的圖片屬性。其核心處理就是讀取皮膚xml文件,loadxmlskin為該處理的關(guān)鍵函數(shù)。function loadxmlskin(strskin as string) global root as ixmldomelement加載皮膚文件接口,供上層窗體綁定窗體皮膚元素,主要是對(duì)xml的操作,參數(shù)為皮膚文件路徑;root是全局變量,存儲(chǔ)xml根接點(diǎn)對(duì)象,實(shí)現(xiàn)如下:set skinxml = new do
45、mdocumentcall skinxml.load(“皮膚文件路徑”)set root = skinxml.documentelement/獲取根接點(diǎn)對(duì)象,使用根接點(diǎn)可遍歷所有接點(diǎn)。2、播放器啟動(dòng)后,需要加載系統(tǒng)的基本狀態(tài)。這對(duì)于用戶(hù)來(lái)說(shuō)是一個(gè)很實(shí)用的操作,用戶(hù)有用戶(hù)的使用習(xí)慣,每次關(guān)閉系統(tǒng),系統(tǒng)都將保存本次播放的狀態(tài)信息(當(dāng)前播放的列表、曲目、播放模式、顯示模式、顯示狀態(tài)等等),下次啟動(dòng)系統(tǒng)自動(dòng)加載上次的狀態(tài)信息,這是一個(gè)較為人性化的設(shè)計(jì)。狀態(tài)信息存儲(chǔ)在系統(tǒng)設(shè)置xml文件里面,通過(guò)loadplayersettings函數(shù)進(jìn)行讀取。public sub loadplayersettings(
46、node as ixmldomnode)加載播放器基本設(shè)置信息:歌詞窗體顯示狀態(tài)、播放列表窗體顯示狀態(tài)、播放模式、上次播放記錄(播放列表和播放曲目的記錄)、靜音狀態(tài)、顯示模式等。dim childnode as ixmldomnodefor each childnode in node.childnodes /遍歷根接點(diǎn)所有子接點(diǎn) select case childnode.nodename /設(shè)置操作 end selectnext3、媒體列表播放主要是通過(guò)讀取列表文件中媒體文件的物理路徑進(jìn)行播放,得到文件物理路徑實(shí)現(xiàn)的關(guān)鍵所在。public function getfilepath(strf
47、ilelist as string, index as integer) as string通過(guò)播放列表名和文件位置獲取播放列表中該文件的物理路徑,函數(shù)返回值為該文件的物理路徑,具體實(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 #1
48、4、mp3是目前使用最為廣泛的媒體格式之一,也是本系統(tǒng)最主要支持的格式。讀取mp3文件信息可以使用戶(hù)直接的了解文件的相關(guān)說(shuō)明信息。mp3文件由一系列長(zhǎng)度不同的禎組成,在mp3文件的開(kāi)始或結(jié)尾,通常會(huì)存儲(chǔ)一些額外的信息,如歌手,曲木目名等等,這些叫做“id3”數(shù)據(jù)。public function getmp3tag(fname as string) as mp3tag獲取mp3格式的文件信息,fname為mp3文件的物理路徑,返回值為自定義的結(jié)構(gòu)類(lèi)型,該結(jié)構(gòu)類(lèi)型用來(lái)存儲(chǔ)mp3文件的信息,其定義如下:public type mp3tag artist as string /存儲(chǔ)歌手信息 album
49、 as string /存儲(chǔ)唱片專(zhuān)輯信息 title as string /存儲(chǔ)標(biāo)題信息 year as string /存儲(chǔ)年代信息 comments as string /存儲(chǔ)備注信息 genre as integer /存儲(chǔ)音樂(lè)風(fēng)格序列end typeglobal mp3infor as mp3tag /聲明一個(gè)該結(jié)構(gòu)變量具體獲取文件信息的方式如下:open “文件路徑” for binary access read as filenum/以二進(jìn)制形式打開(kāi)文件seek filenum, lof(filenum) - 127 /把文件指針移動(dòng)到mp3信息處strinput = space(
50、3)get filenum, , strinputif strinput tag then /如果沒(méi)有發(fā)現(xiàn)信息標(biāo)識(shí),就關(guān)閉文件 close filenum exitend ifstrinput = space(30)get filenum, , strinputtitle = trim(strinput) /讀取文件詳細(xì)信息close filenum5、如前面所提到的,退出系統(tǒng)時(shí)需要保存當(dāng)前系統(tǒng)狀態(tài)信息,這里用savesettings函數(shù)實(shí)現(xiàn)。public sub savesettings()退出播放系統(tǒng)時(shí),保存本次播放的基本狀態(tài)信息,供下次使用系統(tǒng)時(shí)加載使用,這個(gè)函數(shù)沒(méi)有什么核心內(nèi)容,主要逐
51、個(gè)獲取狀態(tài)信息,調(diào)用函數(shù)editnodevalue進(jìn)行保存。private sub editnodevalue(strnodename as string, node as ixmldomnode, strtemp as string, strpsxml as string)在node節(jié)點(diǎn)下保存系統(tǒng)狀態(tài)信息,若存在節(jié)點(diǎn),更新其值即可;若不存在,在node節(jié)點(diǎn)下新建節(jié)點(diǎn)進(jìn)行賦值,保存退出即可。strnodename為狀態(tài)信息節(jié)點(diǎn)名,strtemp為節(jié)點(diǎn)值,strpsxml為xml文件物理路徑。該函數(shù)核心實(shí)現(xiàn)如下:if node.selectsinglenode(strnodename) is n
52、othing then/若不存在,新建節(jié)點(diǎn)賦值保存 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 (newattribut
53、e) node.ownerdocument.save strpsxmlelse node.selectsinglenode(strnodename).attributes.getnameditem(value).text = strtemp node.ownerdocument.save strpsxmlend if6、系統(tǒng)函數(shù)入口是系統(tǒng)運(yùn)行的根基點(diǎn),系統(tǒng)運(yùn)行首先運(yùn)行入口函數(shù)。public sub main()主函數(shù)入口:加載皮膚、加載系統(tǒng)基本信息、系統(tǒng)基本設(shè)置、啟動(dò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é)點(diǎn)set root = mpxml.documentelement /根節(jié)點(diǎn)賦值dim node as ixml
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能農(nóng)業(yè)作物損壞賠償與病蟲(chóng)害防治服務(wù)協(xié)議
- 二零二五醫(yī)療事故賠償協(xié)議書(shū)撰寫(xiě)要點(diǎn)解析
- 2025年度智能化住宅房屋租賃定金合同模板范文
- 二零二五年度知識(shí)產(chǎn)權(quán)戰(zhàn)略布局專(zhuān)利代理合同
- 二零二五年度主播才藝展示及經(jīng)紀(jì)管理協(xié)議
- 二零二五年度能源合同可撤銷(xiāo)條款與節(jié)能減排合同
- 二零二五年度全新辦公區(qū)轉(zhuǎn)租協(xié)議合同:商務(wù)辦公空間租賃權(quán)轉(zhuǎn)讓
- 二零二五年度合同管理制及流程圖編制與執(zhí)行標(biāo)準(zhǔn)合同
- 2025年度智能醫(yī)療設(shè)備研發(fā)團(tuán)隊(duì)技術(shù)人員勞動(dòng)合同
- 二零二五年度新材料專(zhuān)利共享許可協(xié)議
- 《動(dòng)物細(xì)胞工程制藥》課件
- 本校教材選用組織機(jī)構(gòu)及職責(zé)-選用程序及要求
- 材料供應(yīng)履約信用證明:免修版模板范本
- 2023南方國(guó)家電網(wǎng)招聘筆試參考題庫(kù)(共500題)答案詳解版
- 門(mén)式起重機(jī)、架橋機(jī)作業(yè)前安全隱患排查表
- 不合格品處置記錄表(標(biāo)準(zhǔn)版)
- 德語(yǔ)現(xiàn)代主義文學(xué)-浙江大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 機(jī)床數(shù)控技術(shù)PPT完整全套教學(xué)課件
- 店面租賃合同店面租賃合同店面租賃合同書(shū)
- lm3s8962開(kāi)發(fā)板用戶(hù)手冊(cè)
- 《小學(xué)教師職業(yè)道德》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論