版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 多媒體編程實(shí)習(xí)報(bào)告</b></p><p> 選題名稱: 視頻播放器設(shè)計(jì) </p><p> 系(院): 計(jì)算機(jī)工程學(xué)院</p><p> 專 業(yè): 通信工程(多媒體通信方向) </p><p> 班 級(jí):
2、 </p><p> 姓 名: 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 學(xué)年學(xué)期: 2012 ~ 2013 學(xué)年第 2 學(xué)期</p><p> 2013 年 06 月 30 日&
3、lt;/p><p><b> 實(shí)習(xí)任務(wù)書</b></p><p><b> 一、實(shí)習(xí)目的</b></p><p> 1、鞏固多媒體編程所涉及的基礎(chǔ)理論和經(jīng)典技術(shù),努力提高實(shí)踐動(dòng)手能力;</p><p> 2、學(xué)習(xí)多媒體編程,進(jìn)一步掌握VC6.0的使用方法和技術(shù);</p><p
4、> 3、通過一個(gè)完整的項(xiàng)目開發(fā)流程,構(gòu)建合理的專業(yè)技能結(jié)構(gòu),完善知識(shí)體系;</p><p> 4、強(qiáng)化軟件設(shè)計(jì)概念,訓(xùn)練文檔處理能力,培養(yǎng)團(tuán)隊(duì)合作精神;</p><p> 5、加深對于多媒體軟件功能的理解;</p><p> 6、激發(fā)學(xué)生對于多媒體相關(guān)技術(shù)的興趣。</p><p><b> 二、實(shí)習(xí)時(shí)間</b&
5、gt;</p><p> 2013年06月17日~2013年06月30日。</p><p><b> 三、實(shí)習(xí)地點(diǎn)</b></p><p> 淮陰工學(xué)院計(jì)算機(jī)工程學(xué)院及所屬專業(yè)實(shí)驗(yàn)室。</p><p><b> 四、實(shí)習(xí)內(nèi)容</b></p><p> ?。ㄒ唬┰O(shè)計(jì)課題
6、:視頻播放器</p><p><b> (二)設(shè)計(jì)目標(biāo):</b></p><p> 使用VC++6.0強(qiáng)大的AppWizard、Class Wizard和其中的多種控件可以很方便地建立各種應(yīng)用程序。借助ActiveX控件資源和其他現(xiàn)有的控件資源,可以省去自己編程的復(fù)雜過程,從而實(shí)現(xiàn)高級(jí)的功能。本次課程設(shè)計(jì)要使用VC++6.0內(nèi)部的ActiveX控件——Window
7、s Media Player控件,建立自己的多媒體播放器。此多媒體播放器具有打開文件、播放、暫停、關(guān)閉、全屏、音量滑塊調(diào)節(jié)、快進(jìn)、快退等基本功能,可以播放*.mp3、*.wma、*.mdi、*.wav、*avi、*dat等格式的多媒體文件。 </p><p><b> (三)設(shè)計(jì)過程:</b></p><p><b> 1、設(shè)計(jì)思路:</b>
8、</p><p> 基于VC++6.0制作多媒體播放器,主要使用了Windows Media Player控件和各種類型按鈕,控件Windows Media Player完成了由其他控件加載的多媒體文件的解碼,以及完成由其他控件提交的控制信息的響應(yīng)。 </p><p> 根據(jù)Windows Media Player和各個(gè)按鈕控件功能的特點(diǎn),首先要在初始化中對CWMPControl,CW
9、MPSettings, CWMPMedia等類的對象進(jìn)行綁定和定義。 </p><p> 播放器的一些基本的功能如播放、暫停、全屏、靜音、快進(jìn)、快退等主要是調(diào)用CWMPControl和CWMPPlayer類中的成員函數(shù)來進(jìn)行實(shí)現(xiàn)。對于打開按鈕,需要調(diào)用通用文件對話框類,調(diào)用szFileFilter()文件過濾函數(shù)和GetFileName()獲取文件名函數(shù)。 </p><p> 音量滑動(dòng)
10、條Slinder 是通過對CSliderCtrl類進(jìn)行初始化,調(diào)用m_slinder中的CustomdrawSlider()函數(shù)來定義音量的改變。</p><p><b> 2、創(chuàng)建工程:</b></p><p> 打開VC++6.0,點(diǎn)擊“新建”,在“新建”窗口選擇“工程”選項(xiàng)卡。由于程序是基于對話框的MFC應(yīng)用程序,所以首先是建立基于對話框的工程,以“l(fā)ee”
11、為工程名,然后點(diǎn)擊“確定”,如圖1所示。</p><p><b> 圖1 新建對話框</b></p><p> 在點(diǎn)擊“確定”后進(jìn)入到了“MFC應(yīng)用程序向?qū)А襟E1”的設(shè)置界面,選擇“基本對話框”,然后點(diǎn)擊“下一步”。</p><p> 圖2 MFC應(yīng)用程序向?qū)?lt;/p><p> 在剩下的3個(gè)步驟中,全部選擇默認(rèn)
12、的設(shè)置,不要做隨意更改,直至“完成”便實(shí)現(xiàn)了對話框的創(chuàng)建。在建立的對話框中,點(diǎn)擊右鍵,選擇“插入ActiveX控件”,在跳出的對話框中選擇“Windows Media Player”,點(diǎn)擊“確定”。</p><p> 圖3 插入Windows Media Player控件</p><p> 雖然已插入該控件,但該控件沒有與工程中的對話框發(fā)生任何聯(lián)系,所以需要對其進(jìn)行變量(variabl
13、es)的關(guān)聯(lián),將該控件與對話框聯(lián)系起來。</p><p> 左鍵單擊對話框中的中的“Windows Media Player”控件,“屬性”設(shè)置為“IDC_player”,右鍵單擊“建立類向?qū)А?,在對話框中選擇“Member Variables”選項(xiàng)卡,單擊“ADD Variables”, 圖5中的“Confirm Classes”中點(diǎn)擊“OK”會(huì)彈出下圖6所示的“Add member name”對話框,命名為
14、“m_player”,設(shè)為控制“Control”型,單機(jī)“OK”。</p><p> 圖4 MFC ClassWizard</p><p> 圖5 Confirm Classes</p><p><b> 圖6 變量命名</b></p><p> 關(guān)聯(lián)變量之后才算是真正的添加了該控件,可以發(fā)現(xiàn)在關(guān)聯(lián)變量之后
15、,控件工具欄多了“Windows Media Player”控件的選項(xiàng),并且在“Source Files”中增加了許多類,相應(yīng)的頭文件也增加許多,其中最主要的類為Cwmpplayer4,Cwmpcontrols,Cwmpmedia, Cwmpsettings四大類。Cwmpplayer4類主要是關(guān)于對其他類的對象的調(diào)用以及基本的控件功能的實(shí)現(xiàn),提供了與Windows Media Player控件進(jìn)行交互的基本方法,其中部分成員函數(shù)還能夠
16、進(jìn)一步獲取得到其他相關(guān)類對象的實(shí)例;Cwmpcontrols類主要是對控件的更多的操作;Cwmpmedia類主要是對于媒體文件資源的一些操作;Cwmpsettings類主要是對于媒體文件中的一些基本設(shè)置的操作。 </p><p><b> 3、界面的設(shè)計(jì):</b></p><p> 首先是打開按鈕,用于媒體文件的打開;然后依次是播放、暫停、全屏、快進(jìn)、快退、靜音、
17、停止、退出按鈕,以及音量滑塊條Slinder控件。對空間主要進(jìn)行變量的關(guān)聯(lián),以及ID的修改,對于普通按鈕進(jìn)行ID修改,結(jié)果如下下表1和表2所示。 表1 控件ID以及關(guān)聯(lián)變量表</p><p> 表2 控件ID以及對應(yīng)響應(yīng)函數(shù)表</p><p> 經(jīng)過控件添加、關(guān)聯(lián)和位置修改、ID修改,最終得到各個(gè)控件分布后的界面。另外還要加入菜單“MENU”,菜單的添加
18、相對較簡單。 </p><p> 在“Resource File”中添加“MENU”,屬性為“IDR_MENU1”,在“MENU”將按鈕的ID填入到相應(yīng)的“MENU”選項(xiàng)中,但是菜單并未與對話窗口有實(shí)質(zhì)性聯(lián)系,需要將菜單加入到“IDD_CWMJ_DIALG”中來,在“IDD_CWMJ_DIALG”窗口空白右鍵單擊,選中菜單“IDR_MENU1”,這樣便完成了對菜單的加載。運(yùn)行界面效果圖如下圖所示。</p&
19、gt;<p> 圖7 運(yùn)行后的界面效果</p><p> 4、關(guān)鍵功能的實(shí)現(xiàn):</p><p> 4.1 “打開”功能的實(shí)現(xiàn):</p><p> void CleeDlg::Onopen() </p><p><b> {</b></p><p> // TODO: A
20、dd your command handler code here</p><p> char szFilter[]="ALL Data(*.*)|*.*|AVI File (*.avi)|*.avi|Video File (*.dat)|*.dat|Wav File (*.wav)|*.wav|Mid File(*.mid;*.rmi)|*.mid;*.rmi|MPEG File (*.mpeg)|
21、*.mpeg";</p><p> //用于設(shè)置FileDialog的文件類型 </p><p> CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter ); </p><p> if( FileDlg.DoModal() == IDOK ) </p><
22、;p><b> { </b></p><p> CString PathName = FileDlg.GetPathName(); </p><p> PathName.MakeUpper(); </p><p> m_ActiveMovie.SetFileName(PathName); </p><p>
23、 CMenu* pMenu=GetMenu ();</p><p> ASSERT_VALID (pMenu);</p><p> pMenu->EnableMenuItem(fullscreen,0); </p><p> pMenu->EnableMenuItem(end,0); </p><p> pMenu-&g
24、t;EnableMenuItem(pause,0); </p><p> pMenu->EnableMenuItem(run,0);</p><p><b> } </b></p><p><b> } </b></p><p> 4.2 “播放”功能的實(shí)現(xiàn) </p>
25、<p> void CleeDlg::Onrun() </p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p><b> //播放</b></p><p> m_ActiveM
26、ovie.Run();</p><p><b> }</b></p><p> 4.3 “暫?!惫δ艿膶?shí)現(xiàn)</p><p> void CleeDlg::Onpause() </p><p><b> {</b></p><p> // TODO: Add your
27、 command handler code here</p><p><b> //暫停</b></p><p> m_ActiveMovie.Pause();</p><p><b> }</b></p><p> 4.4 “結(jié)束”功能的實(shí)現(xiàn)</p><p> v
28、oid CleeDlg::Onend() </p><p><b> {</b></p><p><b> //結(jié)束菜單</b></p><p> // TODO: Add your command handler code here</p><p> m_ActiveMovie.Stop(
29、);</p><p><b> }</b></p><p><b> “全屏”功能的實(shí)現(xiàn)</b></p><p> void CleeDlg::Onfullscreen() </p><p><b> {</b></p><p> // TOD
30、O: Add your command handler code here</p><p><b> //全屏</b></p><p> if(m_ActiveMovie.GetCurrentState()>-1)</p><p><b> {</b></p><p> m_Activ
31、eMovie.Pause ();//暫停播放 </p><p> m_ActiveMovie.SetFullScreenMode(true);//設(shè)置滿屏模式 </p><p> m_ActiveMovie.Run();//繼續(xù)播放 </p><p><b> }</b></p><p><b> }
32、</b></p><p> 4.6 “控件隱藏”功能的實(shí)現(xiàn)</p><p> void CleeDlg::Onhide() </p><p><b> {</b></p><p><b> //設(shè)置按鍵的隱藏</b></p><p><b>
33、CRect rc;</b></p><p> GetWindowRect(rc);</p><p> if(rc.bottom>500)</p><p> //判斷窗口是否過小</p><p> m_hide=m_hide==0?1:0;</p><p> if(m_hide==0)<
34、/p><p> GetMenu()->CheckMenuItem(hide,MF_UNCHECKED);</p><p><b> else</b></p><p> GetMenu()->CheckMenuItem(hide,MF_CHECKED);</p><p> MovieWindow();<
35、;/p><p><b> }</b></p><p> “滑塊控制音量”的實(shí)現(xiàn)</p><p> void CleeDlg::OnCustomdrawSlider(NMHDR* pNMHDR, LRESULT* pResult) </p><p><b> {</b></p>&l
36、t;p> // TODO: Add your control notification handler code here</p><p><b> //滑塊控制聲音</b></p><p> UpdateData(TRUE);</p><p> sound=m_slider.GetPos();</p><p&
37、gt; UpdateData(FALSE);</p><p> *pResult = 0;</p><p> CMenu* pMenu=GetMenu ();</p><p> ASSERT_VALID (pMenu);</p><p> pMenu->EnableMenuItem(reduce,0);</p>
38、<p> pMenu->EnableMenuItem(add,0);</p><p> if(sound<100&&sound>-100)</p><p><b> {</b></p><p> m_sound=-sound*20-2000;</p><p> if(
39、m_ActiveMovie.GetCurrentState()>-1&&sound_flag==1)</p><p> m_ActiveMovie.SetVolume(-sound*20-2000);</p><p><b> }</b></p><p><b> else</b></p&
40、gt;<p> if (sound<0)</p><p> pMenu->EnableMenuItem(add,1);</p><p><b> else</b></p><p> pMenu->EnableMenuItem(reduce,1);</p><p><b>
41、 }</b></p><p> 4.8 “音量增大”的功能實(shí)現(xiàn)</p><p> void CleeDlg::Onadd() </p><p><b> { </b></p><p><b> //用于增加音量 </b></p><p> CMenu*
42、 pMenu=GetMenu ();</p><p> ASSERT_VALID (pMenu);</p><p> pMenu->EnableMenuItem(reduce,0);</p><p><b> //講減小置為可用</b></p><p> if(sound>-100)</p>
43、;<p><b> {</b></p><p> pMenu->EnableMenuItem(add,0);</p><p> m_slider.SetPos(sound-10);</p><p><b> //更改滑塊位置</b></p><p> if(m_Acti
44、veMovie.GetCurrentState()>-1)</p><p> //判斷是否已載入媒體</p><p> m_ActiveMovie.SetVolume(-sound*20-2000);</p><p><b> }</b></p><p><b> else </b>&
45、lt;/p><p> pMenu->EnableMenuItem(add,1);</p><p> //聲音大于0 禁用增大</p><p><b> }</b></p><p> 4.9 “音量減小”的功能實(shí)現(xiàn)</p><p> void CleeDlg::Onreduce() &l
46、t;/p><p><b> {</b></p><p><b> //用于減小音量 </b></p><p> CMenu* pMenu=GetMenu ();</p><p> ASSERT_VALID (pMenu);</p><p> pMenu->Enab
47、leMenuItem(add,0);</p><p><b> //講增加置為可用</b></p><p> // TODO: Add your command handler code here</p><p> if(sound<100)</p><p><b> {</b><
48、;/p><p> pMenu->EnableMenuItem(reduce,0);</p><p> m_slider.SetPos(sound+10);</p><p><b> //更改滑塊位置</b></p><p> if(m_ActiveMovie.GetCurrentState()>-1)&
49、lt;/p><p> //判斷是否已載入媒體</p><p> m_ActiveMovie.SetVolume(-sound*20-2000); </p><p><b> }</b></p><p><b> else</b></p><p> pMenu->E
50、nableMenuItem(reduce,1);</p><p> //聲音小于-4000 禁用減小</p><p><b> }</b></p><p> 4.10 “靜音”功能的實(shí)現(xiàn)</p><p> void CleeDlg::Onnosound() </p><p><b&g
51、t; {</b></p><p> // TODO: Add your command handler code here</p><p> m_nosound.SetCheck(sound_flag); </p><p> //設(shè)置靜音復(fù)選框的復(fù)選</p><p> GetMenu()->CheckMenuIte
52、m(nosound,MF_UNCHECKED);</p><p> //設(shè)置靜音菜單的復(fù)選</p><p> if(sound_flag==1)</p><p><b> {</b></p><p> m_sound=m_ActiveMovie.GetVolume ();</p><p>
53、 GetMenu()->CheckMenuItem(nosound,MF_CHECKED);</p><p> sound_flag=0;</p><p> if(m_ActiveMovie.GetCurrentState()>-1)</p><p> m_ActiveMovie.SetVolume(-8000);</p><
54、p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> sound_flag=1;</p><p> GetMenu()->CheckMenuItem(nosound,MF_UNCHE
55、CKED);</p><p> if(m_ActiveMovie.GetCurrentState()>-1)</p><p> m_ActiveMovie.SetVolume(m_sound);</p><p><b> }</b></p><p><b> //靜音標(biāo)志的更改</b>
56、</p><p><b> }</b></p><p> 4.11 “聲道平衡”功能的實(shí)現(xiàn)</p><p> void CleeDlg::Onbalance() </p><p> { // TODO: Add your command handler code here</p><p&g
57、t;<b> //聲道平衡</b></p><p> Cbalance sound_balance;</p><p> m_movie=(CActiveMovie3*)&m_ActiveMovie;</p><p> //使用CActiveMovie3控件指針傳遞</p><p> sound_bala
58、nce.DoModal();</p><p><b> }</b></p><p> 4.12 “退出”功能的實(shí)現(xiàn)</p><p> void CleeDlg::Onclose() </p><p><b> {</b></p><p> // TODO: Add
59、your command handler code here</p><p> OnOK();//退出應(yīng)用程序 </p><p><b> }</b></p><p><b> 5、實(shí)驗(yàn)成果</b></p><p><b> 圖8 打開</b></p>
60、<p><b> 圖9 播放中</b></p><p><b> 五、實(shí)習(xí)總結(jié)</b></p><p> 經(jīng)過這次課程設(shè)計(jì),讓我對于MFC編程的方法有了進(jìn)一步的認(rèn)識(shí)。開始看到VC++選擇了一個(gè)感興趣的的題目——視頻播放器,以為用VC++做出一個(gè)視頻播放器的靜態(tài)界面,結(jié)果說要做出一個(gè)播放器并且還要具有播放視頻的真實(shí)效果,其他的功能
61、也都要實(shí)現(xiàn),就覺得這個(gè)課設(shè)很難,因?yàn)閂C++學(xué)的不扎實(shí)。 </p><p> 接觸題目開始做后,選用相對簡單的Windows Media Player控件,于是在網(wǎng)上查了一些關(guān)于Windows Media Player控件的,結(jié)果按照網(wǎng)上說的方法來根本無法實(shí)現(xiàn),所以在頭兩天是在摸索中,耗費(fèi)了很多時(shí)間才拾起當(dāng)時(shí)學(xué)的一些基本知識(shí)。整個(gè)程序設(shè)計(jì)我做了十天,直到答辯前一天我都還在編寫代碼,每天熬夜到12點(diǎn),想起當(dāng)時(shí)沒有
62、好好學(xué)習(xí)VC++的課程知識(shí),現(xiàn)在做起來才知道多么的浪費(fèi)時(shí)間,很多小知識(shí)點(diǎn)卻耗費(fèi)了大量的時(shí)間去糾結(jié)。 </p><p> 在此次的實(shí)習(xí)中,我發(fā)現(xiàn)控件自帶的的類會(huì)在對話框的主程序中被調(diào)用,那么就要在主程序中#include入對應(yīng)類的頭文件。對需要用到的類生成對應(yīng)的對象以實(shí)現(xiàn)類中函數(shù)的使用。在完成控件自帶類的函數(shù)在程序中的使用之后,還需要調(diào)用對話框自身的函數(shù),比如消息及消息響應(yīng)函數(shù)等函數(shù),以及各控件對應(yīng)的消息響應(yīng)函數(shù)
63、,并且初始化函數(shù)等也需要做一些改動(dòng),添加一些與控件類有關(guān)的函數(shù)或者定義一些變量,如此便可以實(shí)現(xiàn)控件自帶類和本程序中的類的共同作用。除此以外,我個(gè)人覺得VC++有個(gè)缺點(diǎn),就是每次建立類向?qū)Ш?,一旦刪除類向?qū)Ш罂偸沁€要手動(dòng)刪除該類向?qū)Тa,還要?jiǎng)h除頭文件里的變量,不然總是提示錯(cuò)誤,很繁瑣,很費(fèi)事。 </p><p> 最后,歷時(shí)兩周的實(shí)習(xí)終于結(jié)束了,播放器也做好了,并且能夠?qū)崿F(xiàn)一個(gè)視頻播放器最基本的一些功能,每次運(yùn)
64、行看到我的播放器能夠按照我的指令去實(shí)現(xiàn)一些功能真的很欣慰。這次是一個(gè)很好的機(jī)會(huì),讓我再次拾起了忘記了的知識(shí),也鍛煉了我的實(shí)踐能力,提高了自己獨(dú)立解決問題的水平。同時(shí)也非常感謝馬岱、于永彥兩位老師的指導(dǎo),以及計(jì)算機(jī)工程學(xué)院給我們提供實(shí)驗(yàn)環(huán)境。</p><p><b> 參 考 文 獻(xiàn)</b></p><p> [1]揣錦華.面向?qū)ο蟪绦蛟O(shè)計(jì)與VC++實(shí)踐[M].西安
65、電子科技大學(xué)出版社.2005 </p><p> [2]鄭阿奇.Visual C++教程[M].北京:機(jī)械工業(yè)出版社.2004 </p><p> [4]周長發(fā).Visual C++.NET多媒體編程[M].電子工業(yè)出版社.2002 </p><p> [5]Steve Mack.流媒體寶典.電子工業(yè)出版社.2003 </p><p>
66、 [6]王育堅(jiān).Visual C++面向?qū)ο缶幊探坛?第2版.北京:清華大學(xué)出版社,2008 </p><p> [7]侯俊杰 .深入淺出MFC.第2版.廣東:南方出版社,2007 </p><p> [8]嚴(yán)華峰等.Visual C++課程設(shè)計(jì)案例精編.北京:中國水利水電出版社,2004 </p><p> [9]王維玉等.Visual C++高級(jí)編程技術(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- vc課程設(shè)計(jì)--多媒體播放器
- 多媒體播放器論文
- 可視化課程設(shè)計(jì)---多媒體播放器系統(tǒng)實(shí)現(xiàn)
- 軟件工程課程設(shè)計(jì)---媒體播放器
- 多媒體播放器(PMP)實(shí)現(xiàn).pdf
- 多媒體播放器的設(shè)計(jì)與開發(fā).pdf
- 利用vb實(shí)現(xiàn)多媒體播放器
- 颶風(fēng)影音多媒體播放器(代碼部分)
- 多媒體播放器系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 便攜式多媒體播放器硬件設(shè)計(jì).pdf
- 基于多媒體播放器的音樂播放模塊的設(shè)計(jì)與實(shí)現(xiàn)
- 基于多媒體播放器的視頻播放模塊的設(shè)計(jì)與實(shí)現(xiàn)
- 基于vc++的多媒體播放器設(shè)計(jì)與實(shí)現(xiàn)
- 多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)(論文)多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)
- 基于嵌入式Linux的多媒體播放器設(shè)計(jì).pdf
- 基于USB主機(jī)的多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 一種網(wǎng)絡(luò)多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 項(xiàng)目要求書_媒體播放器
- 06媒體播放器需求分析
評論
0/150
提交評論