ASP.NET一個簡單的媒體播放器的設計與實現(xiàn)(源代碼+論文)
ASP.NET一個簡單的媒體播放器的設計與實現(xiàn)(源代碼+論文),ASP,NET,一個,簡單,媒體播放器,設計,實現(xiàn),源代碼,論文
分類號:TP311 U D C:D10621-408-(2007)6018-0
密 級:公 開 編 號:2003031302
成都信息工程學院
學位論文
一個簡單的媒體播放器的設計與實現(xiàn)
論文作者姓名:
楊攀
申請學位專業(yè):
計算機科學與技術(shù)
申請學位類別:
工學學士
指導教師姓名(職稱):
王祖儷
論文提交日期:
2007年06月10日
一個簡單的媒體播放器的設計與實現(xiàn)
摘 要
如今流行的媒體播放器雖然很多,但都或多或少存在一些缺陷,比如:沒有記憶的功能;下次播放的時候不能從上次離開的曲目開始;沒有身份認證功能;不能有效的保護媒體播放器里面的歌曲專有性;功能組合與用戶的習慣相違背;界面太復雜以及操作太難等。隨著人們對娛樂要求的提高,一款別致的、貼近用戶操作習慣的播放器非常值得去研究和開發(fā)。
本論文所描述的播放器是在Microsoft Visual Studio .NET 2003平臺下利用Visual Basic.NET語言完成的。使用Visual Basic.NET提供的Windows Media Player控件以及文件處理,最終實現(xiàn)一款別致的,貼近用戶操作習慣的媒體播放器。
該播放器實現(xiàn)了對WAV、MID、MP3、MOV等格式的多媒體文件的播放功能;實現(xiàn)了播放列表加載多個多媒體文件并可以自定義播放順序;實現(xiàn)了用戶的身份認證、連續(xù)播放、記憶播放以及自動關閉播放器等功能。
關鍵詞:媒體播放器;Visual Basic.NET;Microsoft Visual Studio .NET 2003;Windows Media Player控件;記憶功能
The Design and Implement of a Simple Media Player
Abstract
Nowadays, there are many popular media players. They have more or less certain shortcomings. For example, the media player is no memory function, the next player didn't start from the program the last time leaved; no identity authentication, no effective protection for the proprietary of songs in the media player; function combination is against the users' habit, or complex interface, too difficult to operate and so on. With the improvement of requirements for the entertainment, a chic player which closed to the people's operation habit is very worth researching and designing.
The thesis described the player which was developed by Visual Basic.NET based on Microsoft Visual Studio .NET 2003. Implement using file manipulation and windows media player controls, ultimately implement a media player which is unique and press close to user habit.
The player realized play function for the multimedia documents of WAV, MID, MP3, MOV formats and so on; realized to load several multimedia files by playlists and customize the play order; realized the function of identity authentication, continuous play, memory function and realized to be automatically shutted down.
Key words: Media player; Visual Basic.NET; Microsoft Visual Studio .NET 2003; Windows media Player Controls; Memory function
目 錄
論文總頁數(shù):26頁
1 引言 1
1.1 項目背景 1
1.2 國內(nèi)外現(xiàn)狀 1
1.3 項目意義 2
1.4 項目實現(xiàn)方法 2
2 開發(fā)運行平臺分析 2
2.1 Microsoft Visual Studio .NET 2003 2
2.2 Visual Basic.NET技術(shù) 3
2.3 Windows Media Player控件 3
3 系統(tǒng)總體分析 4
3.1 系統(tǒng)總體結(jié)構(gòu)設計及分析 4
3.2 系統(tǒng)功能設計 4
3.2.1 認證 5
3.2.2 文件加載 5
3.2.3 播放 5
3.2.4 關閉 6
4 系統(tǒng)實施方案 6
4.1 媒體播放器界面設計 6
4.2 身份認證 7
4.2.1 登錄 7
4.2.2 認證修改 8
4.3 文件加載系統(tǒng) 10
4.3.1 打開 10
4.3.2 添加 12
4.3.3 清空 13
4.4 文件播放系統(tǒng) 14
4.4.1 暫停/播放 14
4.4.2 停止 15
4.4.3 自定義播放順序 15
4.4.4 連續(xù)播放多個文件的實現(xiàn) 16
4.4.5 記憶播放 17
4.5 關閉 18
4.6 全屏 20
5 系統(tǒng)運行及測試結(jié)果 21
5.1 測試方案 21
5.1.1 測試方法 21
5.1.2 測試方案選擇 21
5.2 測試結(jié)果 21
結(jié) 論 23
參考文獻 24
致 謝 25
聲 明 26
1 引言
1.1 項目背景
多媒體播放器的設計是一門集計算機技術(shù)和數(shù)字多媒體技術(shù)于一體的綜合設計。隨著中國計算機技術(shù)、寬帶網(wǎng)絡技術(shù)的發(fā)展,越來越多的人開始重視多媒體播放器的發(fā)展與應用。再加上如今的播放器雖然種類多樣化,但無論是Windows系統(tǒng)自帶的Windows Media Player播放器,還是現(xiàn)在網(wǎng)上流行的千千靜聽,或者是Kugoo播放器都或多或少都存在著一些缺點,而這些缺點要么是界面與人們平時的生活習慣不相符,或者是復雜難懂;要么就是功能不全不能滿足人們對網(wǎng)絡娛樂的追求。
隨著多媒體的發(fā)展,市場潛力的開發(fā),多媒體硬件環(huán)境和軟件環(huán)境的不斷完善,以及多媒體播放器開發(fā)環(huán)境的成熟,尤其是Microsoft公司開發(fā)的Windows編程工具Visual Basic.NET語言的成熟和完善。為多媒體播放器的研究和開發(fā)提供了先進的思想和多樣的媒體控制手段,成為多媒體應用程序開發(fā)的理想工具。
而此次設計不僅具有操作簡便、界面友好等特性;而且在功能方面更貼近人們的生活習慣和操作習慣。此多媒體設計能識別多中格式的多媒體文件,其中包括WAV,MP3,MID,MOV,等多媒體文件;在播放列表中可以加載一個或者多個多媒體文件;自動連續(xù)播放多個多媒體文件;用戶能隨意改變播放順序;在下次打開播放器時,從上次關閉處繼續(xù)播放文件;在使用播放器前將進行身份認證;在播放列表的多媒體文件播放完后可以選擇自動關閉播放器或者循環(huán)播放。
1.2 國內(nèi)外現(xiàn)狀
在當今信息社會,以多媒體為特征的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展及應用對人類社會產(chǎn)生的影響和作用愈來愈明顯,愈來愈重要。多媒體能改變信息的包裝,實現(xiàn)知識信息數(shù)字化,為人們獲得知識信息提供極大的方便和無窮的樂趣。友善的人機界面、多種多樣的多媒體教學軟件、誘人的電子游藝節(jié)目、身臨其境的多媒體導購系統(tǒng)、五花八門的信息家電和高效方便的網(wǎng)上查詢等等,無不滲透著多媒體的作用,它引導人們進入了一個有聲有色的世界。同時,多媒體的發(fā)展和應用,極大地推動了各行各業(yè)的相互滲透和飛速發(fā)展,大大改變了人類社會的工作環(huán)境和生活方式。可毫不夸張地說,多媒體產(chǎn)業(yè)的形成和發(fā)展,不僅引起了計算機工業(yè)的一次革命,也正在深刻地影響人類社會發(fā)生巨大的變革。多媒體技術(shù)的發(fā)展在很大程度上依靠于多媒體軟件開發(fā)的水平。目前,不管是支撐多媒體系統(tǒng)的系統(tǒng)軟件,還是管理和開發(fā)軟件,以及多媒體的應用軟件都在能力和數(shù)量上還難以滿足多媒體飛速發(fā)展的需要。特別是多媒體應用軟件的缺乏,一直是制約多媒體產(chǎn)業(yè)發(fā)展的瓶頸問題,因此己成為多媒體研究和開發(fā)的關鍵問題。如何制作和設計出大量高質(zhì)量的多媒體應用軟件是計算機從業(yè)人員所面臨的迫切課題,也是廣大人民群眾所關心的事情。
1.3 項目意義
結(jié)合Visual Basic.NET語言提供的先進的思想和多樣的媒體控制手段,結(jié)合用戶使用媒體播放器的習慣和對媒體播放器的要求,設計了一款界面清楚明了,操作簡單實效,可以實現(xiàn)在播放列表中可以加載一個或者多個多媒體文件;自動連續(xù)播放多個多媒體文件;用戶能隨意改變播放順序;在下次打開播放器時,從上次關閉處繼續(xù)播放文件;在使用播放器前將身份認證;在播放列表的多媒體文件播放完后可以選擇自動關閉播放器或者循環(huán)播放等功能的媒體播放器。
1.4 項目實現(xiàn)方法
1)設計的編程語言是Visual Basic.NET,利用Visual Basic.NET多媒體控件中的Windows Media Player 控件來實現(xiàn)多媒體相應功能。
2)利用Visual Basic.NET強大的文件處理能力,實現(xiàn)身份認證功能和記憶功能。
2 開發(fā)運行平臺分析
2.1 Microsoft Visual Studio .NET 2003
Visual Studio .NET 2003 是一個全面的開發(fā)工具,用于快速構(gòu)建面向 Microsoft Windows 和 Web 并連接 Microsoft .NET 的應用程序,極大地提高了開發(fā)人員的效率。
為解決今天最具挑戰(zhàn)性的軟件開發(fā)需要而構(gòu)建的 Visual Studio .NET 2003 增強并進一步完善了其前代產(chǎn)品的功能,并與前代產(chǎn)品高度兼容。Visual Studio .NET 2003 包括來自 Modeler 的全套功能,可幫助構(gòu)建最復雜的企業(yè)級應用程序和在最小的設備上部署應用程序。
Visual Studio .NET 2003 將移動和嵌入式設備,如 Pocket PC 和其他采用 Microsoft Windows CE .NET 操作系統(tǒng)的設備,帶入 .NET。如今,開發(fā)人員能夠使用同樣的編程模型、開發(fā)工具及編程技能,來構(gòu)建應用范圍廣泛——從小設備到最大的數(shù)據(jù)中心——的應用程序。
開發(fā)人員可以使用 Visual Studio .NET 來:
1)構(gòu)建功能強大而且響應能力極好的基于 Windows 的應用程序。
2)構(gòu)建功能強大而且響應能力極好的 Pocket PC 應用程序。
3)構(gòu)建完善而安全的 Web 應用程序。
4)構(gòu)建對設備有智能感知能力的完善而安全的移動 Web 應用程序。
5)在以上任何一種應用程序中使用 XML Web services。
6)避免“DLL 災難”。
7)消除代價高昂的應用程序部署和維護問題。
Visual Studio .NET 是唯一的從頭至尾都是基于通過 XML Web service 進行集成這一思想而構(gòu)建的環(huán)境。通過允許應用程序通過 Internet 共享數(shù)據(jù),XML Web services 使開發(fā)人員能夠利用新的和現(xiàn)有的代碼構(gòu)建應用程序,而不用考慮平臺、編程語言或?qū)ο竽P汀?
2.2 Visual Basic.NET技術(shù)
Visual Basic.NET是運行于Windows平臺上的交互式的可視化集成開發(fā)環(huán)境,是美國Microsoft公司開發(fā)的Microsoft Visual Studio.NET套件的一部分。Visual Basic.NET集程序的代碼編輯、編譯、連接和調(diào)試等功能于一體,提供了一個完整方便的開發(fā)界面和許多有效的輔助開發(fā)工具。
Visual Basic.NET中帶有的Windows Media Player控件為開發(fā)媒體播放器提供了很好的技術(shù)支持和實現(xiàn)的可能。而Windows Media Player ActiveX控件提供了一套功能強大的COM對象模型??丶С值拿襟w文件格式多樣,基本包括所有常用的媒體格式。
Visual Basic.NET的文件處理功能強大,通過對文件的讀寫以及其他操作,可以方便快捷的實現(xiàn)媒體播放器記憶播放功能和身份認證功能。
2.3 Windows Media Player控件
Windows Media Player控件的功能相當完善,而且有漂亮的視頻插件,在播放音頻文件時,可以享受漂亮的視覺效果。
1)控件的添加:打開工具箱,在空白處點擊鼠標右鍵,選擇右鍵菜單中的"新建項...",將彈出"選擇工具箱項"對話框,在此對話框中,從"COM 組件"選項卡中勾選"Windows Media Player"組件,確定返回。
2)控件常用屬性介紹:
WindowsMediaPlayer1.URL = "你要播放的某文件";這里指定你要播放的文件。
WindowsMediaPlayer1.Controls.play;播放。
WindowsMediaPlayer1.Controls.pause;暫停。
WindowsMediaPlayer1.Controls.stop;停止。
WindowsMediaPlayer1.fullScreen;全屏。
3 系統(tǒng)總體分析
3.1 系統(tǒng)總體結(jié)構(gòu)設計及分析
本設計將采用Windows Media Player控件結(jié)合文件讀寫等來全面實現(xiàn)多媒體文件的播放和操作。系統(tǒng)結(jié)構(gòu)圖如1所示:
圖1 設計系統(tǒng)結(jié)構(gòu)圖
3.2 系統(tǒng)功能設計
設計的功能主要分四大子模塊:文件加載、播放、關閉、認證。文件加載是由打開和添加兩個子功能模塊組成。播放包括自定義播放順序、連續(xù)播放多個文件、記憶播放三個子功能模塊。自定義播放順序則是由上一首、下一首、暫停/播放、停止、播放列表等子功能模塊組成。關閉是由循環(huán)播放和播放一次就關閉兩個子功能模塊組成。身份認證是由登陸和修改認證兩個子功能模塊組成。
系統(tǒng)功能概要圖如圖2所示:
圖2 系統(tǒng)功能概要圖
3.2.1 認證
認證包括兩個子功能:
1)認證登錄:通過用戶名和密碼的認證登陸,播放器才能被使用,功能主要是保護隱私,不能是所有人都能使用播放器,實現(xiàn)了權(quán)限的分級,更具有安全性。
2)修改認證:輸入原來的用戶名和密碼,再輸入想修改成的用戶名和密碼,單擊確定。當下次打開播放器的時候,認證將采用修改后的新用戶名和新密碼。
3.2.2 文件加載
文件加載包括兩個子功能:
1)打開:加載一個或者多個文件到播放列表中,并自動播放;加載新的文件進入時,覆蓋播放列表中原有的播放文件。
2)添加:加載一個或者多個文件到播放列表中,不會覆蓋原有的播放列表,只是添加在原有列表的后面。
3.2.3 播放
播放包括了三個子功能:
1)自定義播放順序:單擊下一首按鈕,開始播放下一個文件,單擊上一首按鈕,開始播放上一個文件。單擊暫停按鈕,則播放器暫停播放,同時暫停按鈕變?yōu)殚_始按鈕,單擊開始按鈕,播放器從暫停處繼續(xù)播放,同時開始按鈕恢復為暫停按鈕。單擊停止按鈕,播放器停止播放。雙擊播放列表中想要播放文件的文件名,直接播放。
2)連續(xù)播放多個文件:用戶可以添加一個或者多個多媒體文件在播放列表中,若添加多個文件,則按順序連續(xù)循環(huán)播放。并在播放器的標題欄顯示正在播放歌曲或者視頻的名字。
3)記憶播放:退出播放器時,程序自動將用戶選擇的目錄保存到index文件夾中,以便下次打開播放器時,讀取index文件夾中保存的文件記錄,可以直接從上次退出時正在播放的那個文件開始繼續(xù)播放,這樣就能實現(xiàn)每次啟動播放器,首先播放的是上次退出時播放的那個文件。這樣做就使得播放器具有了記憶功能。
3.2.4 關閉
關閉包括兩個子功能:
1)循環(huán)播放:在默認情況下,播放器是處在循環(huán)播放狀態(tài)中,所謂循環(huán)播放就是當播放完播放列表中的多媒體文件時,又回到第一個文件開始播放。
2)自動關閉:播放完播放列表中的所有文件后,如果選擇了自動關閉功能,那么可執(zhí)行的播放器將自動關閉。當再次打開播放器時,播放器又從第一個文件開始播放。
4 系統(tǒng)實施方案
4.1 媒體播放器界面設計
此界面實現(xiàn)設計的大多功能,其中包括文件的加載,播放,以及關閉播放器等功能。
媒體播放器播放界面如圖3所示:
圖3媒體播放器界面
4.2 身份認證
4.2.1 登錄
初始化的用戶名和密碼可以通過身份認證,只有通過身份認證的用戶才能夠正常的使用播放器。
登陸界面如圖4所示:
圖4登陸界面
打開播放器就會自動彈出一個登陸界面,如圖4所示,輸入初始用戶名和密碼進入播放器界面,如圖3所示,才能正常使用播放器。在文件中輸入原始的用戶名和密碼,打開播放器時,在登陸界面中輸入原始用戶名和密碼后,輸入的將于文件中的原始用戶名和密碼進行對比,如果是正確的,將啟動播放器。如果錯誤將彈出錯誤提示框。其實現(xiàn)代碼為:
1)用戶名和密碼保存函數(shù)
If file.Exists(Application.StartupPath & "\pass.txt") Then
Dim obj As New StreamReader(Application.StartupPath & "\pass.txt", True)
strtest = obj.ReadLine()
obj.Close()
End If
2)讀取保存信息:
readIndex()
form1.Show()
form1.WindowsMediaPlayer1.Ctlcontrols.stop()
form1.Enabled = False
此時播放器是不可用的。
3)輸入信息和保存信息的比較:
Dim str1 As String
str1 = TextBox1.Text + "|" + TextBox2.Text
If str1 = strtest Then
form1.Show()
form1.Enabled = True
form1.WindowsMediaPlayer1.Ctlcontrols.play()
Me.Hide()
Else
MsgBox("用戶名或者密碼錯誤")
End If
4.2.2 認證修改
當一個用戶名和密碼用久了,它的保密性也就隨之下降了,認證修改提供解決問題的途徑,及時的修改用戶名和密碼可以保證播放器系統(tǒng)的安全性,能使播放器的專有性更強。
認證修改界面如圖5所示:
圖5認證修改界面
單擊操作,選擇修改認證,將會彈出修改認證界面,如圖5所示,輸入舊用戶名和密碼,再輸入新用戶名和密碼,點擊修改,如果跟文件中原有的舊用戶名和密碼對比相同,那么修改成功,下次登陸將采用新的用戶名和密碼,如果舊用戶名和密碼與文件中原有用戶名和密碼不相同,那么修改失敗,彈出出錯提示框。其實現(xiàn)代碼為:
1)讀取用戶名和密碼:
If file.Exists(Application.StartupPath & "\pass.txt") Then
Dim obj As New StreamReader(Application.StartupPath & "\pass.txt", True)
nameandpass = obj.ReadLine()
obj.Close()
End If
2)寫入用戶名和密碼:
If file.Exists(Application.StartupPath & "\pass.txt") Then
file.Delete(Application.StartupPath & "\pass.txt")
End If
Dim obj As New StreamWriter(Application.StartupPath & "\pass.txt", True)
obj.Write(str)
obj.Close()
3)比較舊用戶名和密碼并用新用戶名和密碼代替:
oldnameandpass = TextBox4.Text + "|" + TextBox3.Text
If oldnameandpass = nameandpass Then
Dim newNP As String
newNP = TextBox1.Text + "|" + TextBox2.Text
writepass(newNP)
Me.Close()
Else
MsgBox("用戶名或者密碼錯誤!")
End If
4.3 文件加載系統(tǒng)
4.3.1 打開
打開系統(tǒng)是向播放列表加載一個或者多個多媒體文件,通過打開加載文件時,將會覆蓋播放列表中已有的文件。并且將自動播放。其實現(xiàn)代碼為:
1)打開文件:
With Openfile
.FileName = ""
.Filter = "視頻文件(*.rm;*.rmvb;*.dat;*.avi;*.mp3;*.asf;*.mpg)|*.rm;*.rmvb;*.dat;*.avi;*.mp3;*.asf;*.mpg|音頻文件(*.mp3;*.wav;*.wma;*.mid)|*.mp3;*.wav;*.wma;mid|所有文件(*.*)|*.*"
.Multiselect = True
If .ShowDialog() = DialogResult.Cancel Then Exit Sub
End With
2)清空播放列表:
file = Openfile.FileNames.Length
If file = 0 Then Exit Sub
播放列表.Items.Clear()
filelist.Clear()
3)加載新文件:
filename = Openfile.FileNames
ReDim strfile(file)
For i = 0 To file - 1
For j = 0 To filename(i).Length
If Microsoft.VisualBasic.Right(filename(i), j + 1).Chars(0) = "\" Then
strfile(i) = CType(Microsoft.VisualBasic.Right(filename(i), j), String)
strfile(i) = CType(Microsoft.VisualBasic.Left(strfile(i), strfile(i).Length - 4), String)
For i = 0 To file - 1
播放列表.Items.Add(i + 1 & ". " & strfile(i))
filelist.Add(filename(i))
4)自動播放:
WindowsMediaPlayer1.URL = filename(0)
播放列表.SetSelected(0, True)
cmbAdd()
5)操作流程:
單擊圖3上面的‘打開’按鈕,彈出文件加載對話框,如圖6所示:
圖6打開彈出對話框
選擇要打開的文件,單擊圖6的“打開”按鈕,加載文件成功。加載成功后對比加載前后的播放列表發(fā)現(xiàn)打開的文件代替了播放列表中原有的文件。如圖7,8所示:
圖7“打開”操作前播放列表圖
圖8“打開”操作后播放列表圖
4.3.2 添加
添加系統(tǒng)的功能是向播放列表添加多媒體文件,一次可以添加一個或者多個文件,不影響播放列表中的原有文件,僅僅是在其后增加文件。其實現(xiàn)代碼相比打開僅僅是少了清空播放列表的代碼,在這里就不贅言了。
操作流程:單擊圖3上面的“添加”按鈕,彈出打開對話框,如圖9所示,
圖9添加彈出對話框
選擇要添加的文件,單擊圖9上的“打開”按鈕,添加成功。添加前后的播放列表對比,如圖10,11所示:
圖10添加操作后播放列表圖
圖11添加操作前播放列表圖
4.3.3 清空
清空系統(tǒng)的功能是清空播放列表中加載的文件,清空后播放完當前正在播放的文件后就不會播放清空前加載的文件。其實現(xiàn)代碼為:
filelist.Clear()
播放列表.Items.Clear()
intcount = 0
ComboBox1.Text = ""
writeIndex("0")
IsChange = True
操作流程:單擊圖3的“清空”按紐,清空播放列表里面的文件,播放列表在清空前后的對比圖如圖12,13所示:
圖12清空前播放列表圖
圖13清空后播放列表圖
4.4 文件播放系統(tǒng)
4.4.1 暫停/播放
當正在播放文件時,按鈕顯示為暫停,單擊按鈕,播放停止,按鈕轉(zhuǎn)換為播放,再次單擊按鈕,文件從上次暫停處繼續(xù)播放,按鈕轉(zhuǎn)換為暫停。其實現(xiàn)代碼為:
Isplay = Not Isplay
If Isplay = True Then
Button3.Text = "播放"
WindowsMediaPlayer1.Ctlcontrols.pause()
Else
Button3.Text = "暫停"
WindowsMediaPlayer1.Ctlcontrols.play()
End If
4.4.2 停止
單擊停止按鈕,正在播放的文件停止播放,播放進度條跳回到起點,暫停/播放按鈕由暫停狀態(tài)轉(zhuǎn)變成為播放狀態(tài)。其實現(xiàn)代碼為:WindowsMediaPlayer1.Ctlcontrols.stop()
Timer1.Enabled = False
Timer2.Enabled = False
Slider.Value = Slider.Minimum
Isplay = Not Isplay
If Isplay = True Then
Button3.Text = "播放"
End If
4.4.3 自定義播放順序
當用戶想通過自己的操作隨意改變播放的順序時,可以采取三種方式:單擊上一首按鈕;單擊下一首按鈕;在播放列表中雙擊任意一個文件的名稱,從而實現(xiàn)自定義播放順序。
1)上一首
單擊上一首按鈕,播放器馬上停止播放當前文件,重新開始播放上一個文件,當播放器列表中只有一個文件或者是正在播放第一個文件或者單擊上一首倒退到第一個文件,上一首按鈕將失去作用。其實現(xiàn)代碼為:
If filelist.Count > 0 And intcount > 0 Then
WindowsMediaPlayer1.URL = filelist.Item(intcount - 1)
intcount = intcount - 1
播放列表.SetSelected(intcount, True)
TextBox1.Text = FileWrite.GetFileName(filelist.Item(intcount))
If intcount > 0 Then
ComboBox1.Text = "第 " & intcount + 1 & " 首"
Else
ComboBox1.Text = "第 1 首"
End If
Timer2.Enabled = True
2)下一首
單擊下一首按鈕,播放器將停止播放當前文件,重新開始播放下一個文件,當播放器列表中只有一個文件或者是正在播放最后一個文件或者單擊下一首前進到最后一個文件,下一首按鈕將失去作用。其實現(xiàn)代碼為:
If filelist.Count > intcount + 1 Then
WindowsMediaPlayer1.URL = filelist.Item(intcount + 1)
intcount = intcount + 1
播放列表.SetSelected(intcount, True)
TextBox1.Text = FileWrite.GetFileName(filelist.Item(intcount))
ComboBox1.Text = "第 " & intcount + 1 & " 首"
Timer2.Enabled = True
Exit Sub
End If
3)雙擊播放列表中文件名稱
雙擊播放列表中任意一個文件名稱,播放器將會結(jié)束當前正在播放的文件轉(zhuǎn)到播放用戶選擇的文件,播放完用戶選擇的文件后,播放器將自動從選擇文件后連續(xù)播放其他文件。其實現(xiàn)代碼為:
播放列表.SetSelected(CInt(ComboBox1.SelectedIndex), True)
intcount = CInt(ComboBox1.SelectedIndex)
WindowsMediaPlayer1.URL = filelist.Item((intcount))
TextBox1.Text = FileWrite.GetFileName(filelist.Item(intcount))
If Timer1.Enabled = False Then
Timer1.Enabled = True
End If
Timer2.Enabled = True
4.4.4 連續(xù)播放多個文件的實現(xiàn)
播放器開始播放后將連續(xù)播放后面的其他文件,不需要用戶再去手動才能繼續(xù)播放,使整個播放過程自動化,連續(xù)化,從而使用戶全身心傾聽或者觀看多媒體文件。其實現(xiàn)代碼為:
strfilename = TextBox1.Text
For i = 0 To 播放列表.Items.Count - 1
If 播放列表.Items.Item(i) = CStr(i + 1 & ". " & strfilename) Then
播放列表.SetSelected(i + 1, True)
intcount = i + 1
WindowsMediaPlayer1.URL = filelist.Item((intcount))
If Timer1.Enabled = False Then
Timer1.Enabled = True
End If
Timer2.Enabled = True
ComboBox1.Text = "第 " & intcount & " 首"
Exit Sub
End If
Next
If MessageBox.Show("經(jīng)查沒有這首歌曲,是否另選歌曲?", "信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) = DialogResult.Yes Then
TextBox1.Focus()
TextBox1.SelectAll()
Else
Exit Sub
End If
End If
4.4.5 記憶播放
當播放器列表中的文件還沒有播放完畢就關閉播放器,但是下次再打開播放器的時候想從上次關閉時的文件開始播放,這就是所謂的記憶播放功能。首先通過創(chuàng)建一個文件,當關閉的時候把關閉時候的播放列表信息寫進文件,再次打開播放器便從文件中讀出播放列表中的信息,從而實現(xiàn)記憶播放功能。其實現(xiàn)代碼為:
1)寫入信息:
If file.Exists(Application.StartupPath & "\index.txt") Then
file.Delete(Application.StartupPath & "\index.txt")
End If
Dim obj As New StreamWriter(Application.StartupPath & "\index.txt", True)
obj.Write(intCount)
obj.Close()
2)讀出信息:
If file.Exists(Application.StartupPath & "\index.txt") Then
Dim obj As New StreamReader(Application.StartupPath & "\index.txt", True)
strtest = obj.ReadLine()
intcount = 0 + strtest
obj.Close()
End If
3)打開播放器讀入播放列表信息:
Dim reader As New XmlTextReader(filename)
Try
Do While (reader.Read())
Select Case reader.NodeType
Case XmlNodeType.Element
If reader.Name = "PathName" Then
reader.Read()
filelist.Add(reader.Value)
ElseIf reader.Name = "FileName" Then
reader.Read()
播放列表.Items.Add(reader.Value)
End If
End Select
Loop
reader.Close()
Catch ex As Exception
Finally
If Not reader Is Nothing Then
reader.Close()
End If
End Try
在實例再次打開函數(shù)中引用函數(shù)readIndex(),當播放器再次打開時,就會從文件中讀卻保存下來的信息,從而實現(xiàn)記憶播放的功能。
4.5 關閉
當播放列表中的文件播放完畢后,用戶可以選擇循環(huán)播放,或者是關閉播放器。設一變量Dim plyCount As Boolean = True,在默認情況下變量為真,并使播放器循環(huán)播放,如果變量為假,則使播放器播放完列表文件就關閉播放器。其實現(xiàn)代碼為:
If intcount = ListBox1.Items.Count And plyCount = True Then
intcount = 0
WindowsMediaPlayer1.URL = filelist.Item(intcount)
ListBox1.SetSelected(intcount, True)
'//使其被選中
TextBox1.Text = FileWrite.GetFileName(filelist.Item(intcount))
ComboBox1.Text = "第 " & intcount + 1 & " 首"
Timer2.Enabled = True
End If
If intcount = ListBox1.Items.Count And plyCount = False Then
intcount = 0
writeIndex(intcount)
Application.Exit()
End If
操作流程:在默認下播放器自動循環(huán)播放,如果要選擇播放完一次就關閉播放列表則單擊圖3上面的“操作”菜單,選擇“播放”選擇“播放一次就關閉”。
如圖14所示:
圖14選擇關閉播放器圖
4.6 全屏
為了用戶能更好的享受多媒體帶來的視覺享受,項目增加了全屏功能,其實現(xiàn)代碼為:
Try
WindowsMediaPlayer1.fullScreen = True
Catch ex As Exception
MsgBox(ex.ToString)
End Try
全屏的實現(xiàn)是有條件的,當播放器正在播放或者暫停文件時候,可以全屏,如果處在停止情況下是不能全屏的。
If WindowsMediaPlayer1.status = "已停止" Then
Try
If WindowsMediaPlayer1.fullScreen = True Then
WindowsMediaPlayer1.fullScreen = False
End If
5 系統(tǒng)運行及測試結(jié)果
5.1 測試方案
5.1.1 測試方法
測試分為白盒測試和黑盒測試,白盒測試需全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試,是一種窮舉路徑測試;黑盒測試也叫功能測試,他只檢測能不能按照規(guī)格說明書的規(guī)定正常使用,程序是否能否適當?shù)慕邮茌斎霐?shù)據(jù)產(chǎn)生正確的輸出。
5.1.2 測試方案選擇
由于項目各模塊之間的關系復雜,代碼量比較大,而且項目的功能獨立而有明顯,采用白盒測試工作量大,不易具體實現(xiàn)。鑒于上述原因選擇采用了黑盒測試方案,既可以縮短測試的時間,又可以將程序中的不足展現(xiàn)出來。
5.2 測試結(jié)果
表1測試結(jié)果表
編號
功能模塊
被測功能
測試步驟
預期結(jié)果
測試結(jié)果
備注
1
登陸
確認登陸,
激活播放器
1)輸入正確的用戶名和密碼
2)輸入錯的用戶名和對的密碼
3)輸入對的用戶名和錯誤的密碼
4)輸入錯的用戶名和密碼
在1)情況下登陸成功,可以正常使用播放器;在2),3),4)情況下登陸失敗,彈出出錯對話框
在1)情況下登陸成功,可以正常使用播放器;在2),3),4)情況下登陸失敗,彈出出錯對話框
通過
2
打開
加載一個或者多個文件
1)加載一個多媒體文件
2)加載多個多媒體文件
成功加載一個或者多個多媒體文件,并覆蓋播放器列表中的原有多媒體文件
成功加載一個或者多個多媒體文件,并覆蓋播放器列表中的原有多媒體文件
通過
2
播放/暫停
播放和暫停轉(zhuǎn)換
1)播放狀態(tài)下點擊暫停按鈕
2)暫停狀態(tài)下點擊播放按鈕
成功在暫停和播放之間轉(zhuǎn)換
成功在暫停和播放之間轉(zhuǎn)換
通過
3
停止
停止播放文件
點擊停止按鈕
播放停止,播放進度條回到起點
播放停止,播放進度條回到起點
通過
4
全屏
全屏切換
1)在播放或者暫停狀態(tài)下點擊全屏按鈕
2)在停止狀態(tài)下點擊全屏狀態(tài)
3)全屏狀態(tài)下按鍵盤上的ESC鍵
在1)情況下可以全屏,在2)情況下不能全屏,并出現(xiàn)出錯提示框,在3)情況下回到初始大小狀態(tài)
在1)情況下可以全屏,在2)情況下不能全屏,并出現(xiàn)出錯提示框,在3)情況下回到初始大小狀態(tài)
通過
5
下一首
自定義播放順序
1)在播放第一個文件的時候點擊下一首按鈕
2)在播放最后一個文件的時候點擊下一首按鈕
3)在上面兩種情況以外播放任意一個文件時候點擊下一首按鈕
在1)情況下播放下一個文件;在2)情況下按鈕失去作用;在3)情況下播放下一個文件
在1)情況下播放下一個文件;在2)情況下按鈕失去作用;在3)情況下播放下一個文件
通過
6
上一首
自定義播放順序
1)在播放第一個文件的時候點擊上一首按鈕
2)在播放最后一個文件的時候點擊上一首按鈕
3)在上面兩種情況以外播放任意一個文件時候點擊上一首按鈕
在1)情況下按鈕失去作用;在2)情況下播放上一個文件;在3)情況下播放上一個文件
在1)情況下按鈕失去作用;在2)情況下播放上一個文件;在3)情況下播放上一個文件
通過
7
添加
加載一個或者多個文件
1)添加一個多媒體文件
2)添加多個多媒體文件
在1)情況下在原有的播放器列表中成功添加一個多媒體文件
在2)情況下在原有的播放器列表中成功添加多個多媒體文件
在1)情況下在原有的播放器列表中成功添加一個多媒體文件
在2)情況下在原有的播放器列表中成功添加多個多媒體文件
通過
8
清空
清空播放列表中的多媒體文件
點擊清空按鈕
播放列表中的所有多媒體文件都被成功刪除
播放列表中的所有多媒體文件都被成功刪除
通過
9
播放列表選擇隨意播放
自定義播放順序
1)雙擊播放列表中的第一個多媒體文件
2)雙擊播放列表中的最后一個多媒體文件
3)雙擊正在播放的多媒體文件
4)雙擊前三中情況以外的任何一個多媒體文件
在1)情況下播放第一個多媒體文件;在2)情況下播放最后一個多媒體文件;在3)情況下重新播放正在播放的多媒體文件;在4)情況下播放雙擊的多媒體文件
在1)情況下播放第一個多媒體文件;在2)情況下播放最后一個多媒體文件;在3)情況下重新播放正在播放的多媒體文件;在4)情況下播放雙擊的多媒體文件
通過
10
連續(xù)播放
播放列表中的多媒體文件連續(xù)播放
1)加載多個多媒體文件在播放列表中(至少3個)
2)點擊除最后一個文件外的任意一個多媒體文件
3)等待播放完畢,觀察接下來的播放情況
播放完選擇的多媒體文件后,繼續(xù)播放下面多個多媒體文件
播放完選擇的多媒體文件后,繼續(xù)播放下面多個多媒體文件
通過
11
循環(huán)播放
循環(huán)播放播放列表中的多媒體文件
1)默認下,自動由第一個多媒體文件開始播放到最后一個多媒體文件,等待最后一個多媒體文件播放完畢,觀察接下來的情況
2)選擇播放最后一個多媒體文件,等待播放完畢,觀察接下來的情況
3)在操作里面選擇循環(huán)播放后,重復1),2)觀察情況
播放完畢最后一個多媒體文件后,自動跳轉(zhuǎn)到播放列表中的第一個多媒體文件開始播放
播放完畢最后一個多媒體文件后,自動跳轉(zhuǎn)到播放列表中的第一個多媒體文件開始播放
通過
12
自動關閉
播放器自動關閉
1)點擊選擇,選擇播放,再選擇播放一次就關閉
2)從播放列表中任意一個多媒體文件開始播放,直至播放完最后一個多媒體文件,再觀察情況
播放完最后一個多媒體文件后自動關閉播放器
播放完最后一個多媒體文件后自動關閉播放器
通過
13
修改認證
修改用戶名和密碼
1)輸入正確的舊用戶名和密碼,再輸入新用戶名和密碼
2)輸入錯誤的用戶名和正確的密碼,再輸入新用戶名和密碼
3)輸入正確的用戶名和錯誤的密碼,再輸入新用戶名和密碼
4)輸入錯誤的用戶名和密碼,再輸入新用戶名和密碼
5)用新用戶名和密碼登陸播放器
在1)情況下修改成功,能夠用新用戶名和密碼登陸播放器;在2),3),4)情況下修改失敗,將彈出出錯提示框,不能用新用戶名和密碼登陸播放器
在1)情況下修改成功,能夠用新用戶名和密碼登陸播放器;在2),3),4)情況下修改失敗,將彈出出錯提示框,不能用新用戶名和密碼登陸播放器
通過
收藏