歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > DOC文檔下載  

第03講 媒體播放器的制作

  • 資源ID:27726599       資源大?。?span id="d7dujct" class="font-tahoma">490KB        全文頁(yè)數(shù):17頁(yè)
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

第03講 媒體播放器的制作

第03講 媒體播放器本章介紹了媒體播放控件(Windows Media Player)的常用屬性和方法,并且利用它設(shè)計(jì)一個(gè)簡(jiǎn)單的媒體應(yīng)用程序媒體播放器。該媒體播放器可以播放Wave、AVI、MIDI和mp3等格式的文件。Windows Media Player控件的引入使得在Visual C# 2005環(huán)境下制作多媒體應(yīng)用程序變得非常的簡(jiǎn)單,只需要編寫(xiě)幾行簡(jiǎn)單的代碼,就可以達(dá)到播放多媒體文件的目的。本章學(xué)習(xí)目標(biāo):(1)理解Windows Media Player控件的常用屬性。(2)學(xué)會(huì)使用Windows Media Player、Button、Panel、ListBox等控件設(shè)計(jì)多媒體播放器程序。(3)通過(guò)本章實(shí)例,進(jìn)一步掌握Visual C# 2005較小型的Windows應(yīng)用程序開(kāi)發(fā)的基本思想。3.1 Windows Media Player控件Windows Media Player控件主要用于管理多媒體文件的記錄與回放,從概念上說(shuō),該控件就是一個(gè)完整的媒體播放器,它支持Wave、AVI、MIDI和mp3等格式。3.1.1 添加Windows Media Player控件Windows Media Player控件不在默認(rèn)的工具箱中,在設(shè)計(jì)多媒體應(yīng)用程序之前,需要將此控件添加到工具箱中,按以下步驟進(jìn)行:(1)在工具箱中單擊右鍵,彈出如圖3-1所示菜單。圖3-1 添加控件(2)單擊【選擇項(xiàng)】菜單命令,彈出如圖3-2所示的【選擇工具箱項(xiàng)】對(duì)話(huà)框。圖3-2 【選擇工具箱項(xiàng)】對(duì)話(huà)框(3)打開(kāi)【COM組件】選項(xiàng)卡,并選中Windows Media Player組件復(fù)選框,然后單擊【確定】按鈕,則該控件被添加到工具箱中,如圖3-3所示。圖3-3 添加控件后的工具箱3.1.2 Windows Media Player控件簡(jiǎn)介在設(shè)計(jì)多媒體應(yīng)用程序時(shí),跟添加其他控件一樣,將Windows Media Player控件添加到窗體上,它在窗體上的外觀如圖3-4所示。圖3-4 媒體播放器控件的外觀從圖中可以看出,最上面的是顯示窗口,用于顯示媒體文件播放畫(huà)面,窗口下面是進(jìn)度條,進(jìn)度條下面是播放按鈕和音量控制滑竿,從左至右依次為:播放、停止、前一個(gè)、后一個(gè)、音量開(kāi)關(guān)按鈕和音量調(diào)節(jié)器。媒體播放器控件的常用屬性有:(1)AllowDrop:允許拖動(dòng)。(2)ContextMenuStrip:允許用戶(hù)自定義彈出菜單。(3)fullScreen:用于設(shè)置是否全屏顯示。(4)Visible:是否可見(jiàn)。(5)PlayState:用于獲取媒體播放器的工作狀態(tài)。(6)URL:用于設(shè)置媒體播放器播放的路徑或地址。使用媒體播放器播放多媒體文件的方法非常簡(jiǎn)單,例如:/*MediaPlayer.URL = "D:國(guó)歌.mp3" / 播放D盤(pán)上的"國(guó)歌.mp3"/*停止播放的代碼為:/*MediaPlayer.URL = "" / 設(shè)為空字符串即停止播放/*下面用一個(gè)媒體播放器實(shí)例來(lái)介紹如何設(shè)計(jì)一個(gè)完整的媒體播放軟件。3.2 界面設(shè)計(jì)及屬性設(shè)置本節(jié)介紹媒體播放器的用戶(hù)界面設(shè)計(jì)以及窗體和窗體上各控件的屬性設(shè)置。3.2.1 界面設(shè)計(jì)新建一個(gè)Windows應(yīng)用程序,在窗體上依次放置ListBox、Windows Media Player、Panel和8個(gè)Button控件,如圖3-5所示(設(shè)置好屬性后)。再為窗體添加一個(gè)OpenFileDialog控件、一個(gè)FolderBrowserDialog控件和一個(gè)Timer控件,它們的作用分別是:(1)OpenFileDialog控件:用于打開(kāi)單個(gè)文件。(2)FolderBrowserDialog控件:用于添加媒體文件目錄。(3)Timer控件:用于控制連續(xù)播放媒體文件。添加完上述三個(gè)控件后,可以看到窗體設(shè)計(jì)器下方的組件板上出現(xiàn)了這三個(gè)組件,如圖3-5所示(設(shè)置好屬性后)。圖3-5 媒體播放器用戶(hù)界面3.2.2 屬性設(shè)置窗體和各控件的屬性設(shè)置如表3-1所示。表3-1 窗體和各控件的屬性控件類(lèi)型控件名稱(chēng)屬性設(shè)置結(jié)果FormForm1Text媒體播放器StartPositionCenterScreenMaximizeBoxFalseAutoSizeModeGrowAndShrinkWindows Media PlayerWindows Media Player1NamemediaPlayerListBoxListBox1NamelstFileListOpenFileDialogOpenFileDialog1NameodlgMediaFolderBrowserDialogFolderBrowserDialog1NamefbdlgMediaTimerTimer1NametmrMediaPanelPanel1BorderStyleFixed3DButtonButton1NamebtnAddFileText添加歌曲Button2NamebtnAddFilesText添加目錄Button3NamebtnDeleteText刪除單曲Button4NamebtnPlayText播放Button5NamebtnBackText上一首Button6NamebtnForwardText下一首Button7NamebtnReplayText單曲循環(huán)Button8NamebtnStopText停止3.3 編寫(xiě)代碼因?yàn)槊襟w播放器需要用到DirectoryInfo、FileInfo等類(lèi),所以首先應(yīng)當(dāng)引入System.IO命名空間:/*using System.IO;/*接下來(lái)在代碼的通用段定義以下公共數(shù)組和變量:/*string fileList = new string10000; / 定義播放列表數(shù)的最大值int numOfMusic; / 選中的媒體文件的索引號(hào)int selectOne; / 選中的音樂(lè)文件bool playOne = false; / 控制是否循環(huán)播放/*添加以下六個(gè)方法,分別用于添加單個(gè)媒體文件、添加媒體文件目錄、刪除媒體文件、播放媒體文件、打開(kāi)和關(guān)閉窗體上的按鈕。/*/ 添加單個(gè)媒體文件的方法/*public void AddFile(string path) if (numOfMusic < 10000) numOfMusic += 1; fileListnumOfMusic = path; else MessageBox.Show("不能添加文件!","播放列表已滿(mǎn)"); /*/*/*/ 添加媒體文件目錄的方法/*public void AddFiles(string path,ListBox lstFiles) DirectoryInfo dir = new DirectoryInfo(path); foreach (FileInfo f in dir.GetFiles ("*.mp3") AddFile(f.FullName); int i; string strFile = Convert.ToString(numOfMusic); for (i = 1; i <= 5 - strFile.Length; i+) strFile += "" strFile = f.Name; lstFileList.Items.Add(strFile); foreach (DirectoryInfo d in dir.GetDirectories() AddFiles(d.FullName, lstFileList); /*/*/*/ 刪除單個(gè)媒體文件的方法/*public void DelFile(int selectNum) int i; for (i = selectNum; i <= numOfMusic - 1; i+) fileListi = fileListi + 1; numOfMusic -= 1;/*/*/*/ 播放媒體文件的方法/*public void Play(int selectNum) mediaPlayer.URL = fileListselectNum; / 播放選中的媒體文件 this.Text = "正在播放 - " + lstFileList.SelectedItem.ToString();/*/*/*/ 使部分按鈕可用的方法/*public void OpenBtn() btnPlay.Enabled = true; btnBack.Enabled = true; btnForward.Enabled = true;/*/*/*/ 使部分按鈕不可用的方法/*public void CloseBtn() btnPlay.Enabled = false; btnBack.Enabled = false; btnForward.Enabled = false; btnStop.Enabled = false; btnReplay.Enabled = false; btnDelete.Enabled = false;/*/*接下來(lái)編寫(xiě)窗體的載入(Load)事件代碼如下,用于初始化各數(shù)據(jù)和窗體上各按鈕控件的狀態(tài)。/*/ 窗體的載入事件代碼/*private void Form1_Load(object sender, EventArgs e) lstFileList.Items.CopyTo(fileList, 0); / 將列表框(lstFileList)中的列表項(xiàng)全部復(fù)制到數(shù)組(fileList)中 numOfMusic = 0; / 選中第一個(gè)媒體文件 CloseBtn();/*/*為【添加文件】按鈕(btnAddFile)的Click事件添加以下代碼,添加媒體文件。/*/ 【添加文件】按鈕的單擊事件代碼/*private void btnAddFile_Click(object sender, EventArgs e) int i; odlgMedia.FileName = "" / 設(shè)置默認(rèn)文件名 odlgMedia.InitialDirectory = "C:" / 設(shè)置默認(rèn)路徑 odlgMedia.Filter = "mp3文件|*.mp3|所有文件|*.*" / 設(shè)置文件類(lèi)型 if (odlgMedia.ShowDialog() = DialogResult.OK) string path = odlgMedia.FileName; FileInfo f = new FileInfo(path); AddFile(f.FullName); string strFile = Convert.ToString(numOfMusic); for (i = 1; i <= 5 - strFile.Length; i+) strFile += "" strFile = f.Name; lstFileList.Items.Add(strFile); if (lstFileList.Items.Count > 0) OpenBtn(); /*/*再為【添加目錄】按鈕(btnAddFiles)的Click事件添加以下代碼,添加媒體文件目錄,實(shí)現(xiàn)成批地添加媒體文件。/*/ 【添加目錄】按鈕的單擊事件代碼/*private void btnAddFiles_Click(object sender, EventArgs e) fbdlgMedia.SelectedPath = "C:" fbdlgMedia.ShowNewFolderButton = true; fbdlgMedia.Description = "請(qǐng)選擇媒體文件目錄:" fbdlgMedia.ShowNewFolderButton = false; if (fbdlgMedia.ShowDialog() = DialogResult.OK) AddFiles(fbdlgMedia.SelectedPath, lstFileList); if (lstFileList.Items.Count > 0) OpenBtn(); /*/*為【刪除】按鈕(btnDelete)的Click事件添加以下代碼,實(shí)現(xiàn)從列表框中刪除選中的文件。/*/ 【刪除單曲】按鈕的單擊事件代碼/*private void btnDelete_Click(object sender, EventArgs e) int i = lstFileList.SelectedIndex; if (lstFileList.SelectedIndex >= 0) if (selectOne = lstFileList.SelectedIndex + 1) && (mediaPlayer.URL != "") MessageBox.Show("不能刪除正在播放的文件", "錯(cuò)誤"); else DelFile(i + 1); lstFileList.Items.RemoveAt(i); if (i < lstFileList.Items.Count) lstFileList.SelectedIndex = i; else if (lstFileList.Items.Count = 0) CloseBtn(); else lstFileList.SelectedIndex = 0; /*/*編寫(xiě)【播放】按鈕(btnPlay)的Click事件代碼如下,用于實(shí)現(xiàn)播放功能。/*/ 【播放】按鈕的單擊事件代碼/*private void btnPlay_Click(object sender, EventArgs e) if (lstFileList.SelectedIndex < 0) selectOne = 1; lstFileList.SelectedIndex = 0; else selectOne = lstFileList.SelectedIndex + 1; Play(selectOne); tmrMedia.Enabled = true; btnStop.Enabled = true; btnReplay.Enabled = true;/*/*為播放列表框(lstFileList)的雙擊(DoubleClick)事件添加以下代碼,實(shí)現(xiàn)通過(guò)雙擊列表框中的文件來(lái)播放。/*/ 列表框lstFileList按鈕的雙擊事件代碼/*private void lstFileList_DoubleClick(object sender, EventArgs e) / 雙擊播放列表中的媒體文件時(shí),則播放該文件 btnPlay_Click(sender, e); playOne = false; btnReplay.Text = "單曲循環(huán)"/*/*為【上一首】按鈕(btnBack)的Click事件添加以下代碼,用于實(shí)現(xiàn)播放上一首的功能。/*/ 【上一首】按鈕的單擊事件代碼/*private void btnBack_Click(object sender, EventArgs e) if (lstFileList.SelectedIndex > 0) lstFileList.SelectedIndex -= 1; else if (lstFileList.SelectedIndex = 0) lstFileList.SelectedIndex = lstFileList.Items.Count - 1; else lstFileList.SelectedIndex = numOfMusic - 1; selectOne = lstFileList.SelectedIndex + 1; Play(selectOne); btnStop.Enabled = true; btnReplay.Enabled = true;/*/*為【下一首】按鈕(btnForward)的Click事件添加以下代碼,用于實(shí)現(xiàn)播放下一首的功能。/*/ 【下一首】按鈕的單擊事件代碼/*private void btnForward_Click(object sender, EventArgs e) if (lstFileList.SelectedIndex < lstFileList.Items.Count - 1) lstFileList.SelectedIndex = lstFileList.SelectedIndex + 1; else if (lstFileList.SelectedIndex > 0) lstFileList.SelectedIndex = 0; selectOne = lstFileList.SelectedIndex + 1; Play(selectOne); btnStop.Enabled = true; btnReplay.Enabled = true;/*/*為【單曲循環(huán)】按鈕(btnReplay)的Click事件添加以下代碼,單擊此按鈕實(shí)現(xiàn)“循環(huán)/停止循環(huán)”播放的功能。/*/ 【單曲循環(huán)】按鈕的單擊事件代碼/*private void btnReplay_Click(object sender, EventArgs e) if (playOne = true) playOne = false; btnReplay.FlatStyle = FlatStyle.Standard; / 設(shè)置按鈕外觀為三維 btnReplay.Text = "單曲循環(huán)" else playOne = true; btnReplay.FlatStyle = FlatStyle.Popup; / 設(shè)置按鈕外觀為平面顯示 btnReplay.Text = "取消循環(huán)" lstFileList.SelectedIndex = selectOne - 1;/*/*為【停止】按鈕(btnStop)的Click事件添加以下代碼,單擊此按鈕實(shí)現(xiàn)停止播放的功能。/*/ 【停止】按鈕的單擊事件代碼/*private void btnStop_Click(object sender, EventArgs e) mediaPlayer.URL = "" this.Text = "媒體播放器" tmrMedia.Enabled = false; btnReplay.Enabled = false; lstFileList.SelectedIndex = selectOne - 1;/*/*為播放列表框(lstFileList)的SelectedIndexChanged事件添加以下代碼,控制必要時(shí)才讓【刪除】按鈕可用。/*/ 列表框lstFileList按鈕的SelectedIndexChanged事件代碼/*private void lstFileList_SelectedIndexChanged(object sender, EventArgs e) btnDelete.Enabled = true;/*/*最后給計(jì)時(shí)器控件(tmrMedia)的Tick事件添加以下代碼,這樣在播放完一首音樂(lè)后會(huì)自動(dòng)播放下一首,即實(shí)現(xiàn)連續(xù)播放的功能。/*/ 列表框tmrMedia按鈕的Tick事件代碼/*private void tmrMedia_Tick(object sender, EventArgs e) / 用Timer控件控制連續(xù)播放 if (mediaPlayer.playState = WMPLib.WMPPlayState.wmppsStopped) if (playOne = false) if (selectOne < lstFileList.Items.Count) selectOne += 1; else if (selectOne = lstFileList.Items.Count) / 如果列表中所有媒體文件都播放完畢,則從頭開(kāi)始。 selectOne = 1; lstFileList.SelectedIndex = selectOne - 1; Play(selectOne); /*/*3.4 運(yùn)行結(jié)果編譯并運(yùn)行程序,添加一些媒體文件后,雙擊列表框中的媒體文件,運(yùn)行結(jié)果如圖3-6所示。圖3-6 播放媒體文件單擊【刪除單曲】按鈕,因?yàn)榱斜砜蛑斜贿x中的媒體文件正在播放,故不能刪除,如圖3-7所示。圖3-7 刪除正在播放的媒體文件接下來(lái)單擊【單曲循環(huán)】按鈕,循環(huán)播放選中的媒體文件,如圖3-8所示。圖3-8 循環(huán)播放選中的媒體文件小結(jié)本章首先介紹了Windows Media Player控件的常用屬性及其使用方法,以及如何將Windows Media Player控件添加到Visual C# 2005的工具箱中。然后利用它設(shè)計(jì)一個(gè)簡(jiǎn)單的媒體播放器。重點(diǎn)及難點(diǎn):(1)Windows Media Player控件的常用屬性;(2)使用Windows Media Player、Button、Panel、ListBox等控件設(shè)計(jì)多媒體播放器應(yīng)用程序。綜合練習(xí)三一、選擇題1. Windows Media Player控件用于獲取媒體播放器的工作狀態(tài)的屬性是( )。A. AllowDropB. ContexMenuStripC. PlayStateD. URL2. Windows Media Player控件用于設(shè)置媒體播放器播放的路徑或地址的屬性是( )。A. AllowDropB. ContexMenuStripC. PlayStateD. URL3. DirectoryInfo和FileInfo類(lèi)均位于( )命名空間中。A. System.Collections.GenericB. System.IOC. System.Windows.FormsD. System.Drawing4. 表示列表框被選中列表項(xiàng)的屬性是( )。A. SelectedItemB. SelectedIndexC. ItemsD. Text二、填空題1. Windows Media Player控件用于設(shè)置是否全屏顯示的屬性是 。2. 如要mediaPlayer1控件播放E盤(pán)MP3文件夾內(nèi)的“國(guó)歌.mp3”音樂(lè)文件,則需要編寫(xiě)的播放程序代碼為 。三、問(wèn)答題1. 如何將Windows Media Player控件添加到工具箱中?2. 媒體播放器控件(Windows Media Player)主要的屬性有哪些,如何編寫(xiě)播放媒體文件的代碼?四、上機(jī)操作題1. 上機(jī)實(shí)現(xiàn)一個(gè)類(lèi)似于本章介紹的MP3播放器,并實(shí)現(xiàn)【隨機(jī)播放】功能。

注意事項(xiàng)

本文(第03講 媒體播放器的制作)為本站會(huì)員(xinsh****encai)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!