件软综合课程设计--mp3音乐播放器--大学毕设论文.doc

上传人:红**** 文档编号:91483309 上传时间:2023-05-27 格式:DOC 页数:25 大小:523KB
返回 下载 相关 举报
件软综合课程设计--mp3音乐播放器--大学毕设论文.doc_第1页
第1页 / 共25页
件软综合课程设计--mp3音乐播放器--大学毕设论文.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《件软综合课程设计--mp3音乐播放器--大学毕设论文.doc》由会员分享,可在线阅读,更多相关《件软综合课程设计--mp3音乐播放器--大学毕设论文.doc(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、课程设计软件综合课程设计班 级: 通信2班 姓 名: 闫振宇 学 号: 1306030222 指导教师: 徐维 成 绩: 电子与信息工程学院信息与通信工程系 目录前言.11 任务概述.11.1 设计题目.11.2 规则要求及目标.11.3 运行环境.11.4 条件与限制.12 功能及模板设计.12.1 系统功能.12.2 模板设计.22.2.1 播放器界面.32.2.2 保存.32.2.3 删除.52.2.4 操作.53 数据结构与算法设计.53.1 播放器界面.53.2 保存.63.2.1 多文件保存.63.2.2 单文件保存.73.2.3 文件处理.83.2.4 文件件保存.83.3 删除

2、.93.3.1 清空列表.93.3.2 删除列表.93.3.3 删除本地文件.103.4 操作.113.4.1 wmp.113.4.2 控制.114 程序描述.124.1 音乐播放器的界面.124.2 保存.144.2.1 多文件 单文件保存.144.2.2 文件夹保存.164.3 删除.174.3.1 清空列表.174.3.2 删除列表.174.3.3 删除本地文件.194.4 操作.204.4.1 wmp.204.4.2 控制.215 设计感想.22参考文献.22 前言 音乐是一种声音的符号,表达人的思想感情,是人们思想的载体之一。一款好的MP3音乐播放器不仅能够提供好的音乐播放的效果,更

3、能为使用提供舒适的操作。本款MP3音乐播放器利用Visual Basic 6.0对音乐播放器进行编写。同时给出了详细的系统设计过程,部分界面图及主要功能运行流程图。该音乐播放器集播放,暂停,下一首,上一首,调节音量,等基本操作,还可以进行歌曲操作,实现全部列表循环,单曲循环,顺序播放,随机播放等功能,对于文件的添加,文件夹的添加,本地文件的删除操作都可以实现,为实现文件夹保存功能,还调用了window的API函数。设计的指导思想是一切从问题出发,实际出发,界面简约,美观,操作尽量简明,让使用者能够轻松使用,愉快听歌。1. 任务概述1.1 设计题目:MP3音乐播放器1.2 规则要求及目标:1)

4、可以同时多个文件选择和文件夹选择功能(一次选择文件夹中的所有文件)。2) 支持文件类型过滤功能。3) 支持顺序播放、随机播放、列表循环播放和单曲循环播放。4) 支持播放列表删除功能和本地文件删除功能。5) 支持播放列表保存功能。1.3 系统运行环境:Windows 7,Window XP,Visual Basic 6.0中文版1.4 条件与限制:程序要在Visual Basic 6.0软件下进行,我所制作的音乐播放器未与网络连接,没有搜索文件的功能,只能播放和添加电脑中已有的歌曲曲目。2. 功能及模块设计2.1系统功能1) 同时多文件选择(mand1):通过单击按钮选择文件,经过鼠标右键拖拽可

5、选择多个文件。2) 单文件选择(mand1):通过单击按钮选择文件,鼠标左键单击即可。3) 文件夹选择:(mand2):通过单击按钮选择文件夹,单击打开即可。4) 清空列表(mand3):通过单击按钮,清空list列表中的歌曲。5) 列表清除(mand4):通过单击按钮,删除list列表中的任意歌曲。6) 删除文件(mand5):通过单击按钮,从电脑删除list列表中歌曲本地文件。7) Windows Media Player(form1.wmp):通过单击,实现歌曲播放,暂停,下一首,上一首,声量调整。8) 控制播放类型:(form1.菜单编辑器):通过单击,实现歌曲全部循环,单曲循环,顺序

6、播放,随机播放。2.2 模板设计关于模板设计,在设计初期,利用VB的可视化编程特性,先建立窗口(音乐播放器界面),在音乐播放器的界面上设置按钮,其中按功能可分成三个部分,分别为保存,删除,操作。保存设置按照要求有添加文件选项,添加文件夹选项,删除设置中按照要求有清空列表,删除列表,删除本地文件等按钮。保存和删除操作都是由建立的两个文档相互联系,操作也是调用文档内容进行一系列操作与控制。模板设计如图2-1所示: 音乐播放器界面 删除 操作 保存清空列表删除列表删除本地文件 添加文件夹 添加文件 wmp全部循环 文档1Filepath.txt 文档2 music.txt顺序播放随机播放单曲循环 如

7、图2-1 模板设计图2.2.1 音乐播放器界面:该窗体是主窗体,整个程序只有一个窗体,其他功能都是由添加控件完成。窗体中大致分为三个模块:保存,删除,基本操作三部分。该窗体设置了command按钮控件5个,timer时间控件2个,CommonDialog(cd)选取文件控件1个,label标签控件1个,Windows Media Player(wmp)播放器控件1个,list列表控件1个。播放器界面如图2-2所示:图2-2 界面图2.2.2 保存: 1)多文件保存:鼠标单击command1控件按钮,选择歌曲存储的文件夹,选择你所选取的多首歌曲。鼠标单击打开即可,经过对于歌曲的处理,歌曲名称显示

8、在list列表中。如图2-3所示:图2-3 多文件保存图 2) 单文件保存:鼠标单击command1控件按钮,选择歌曲存储的文件夹,选择你所选取的歌曲。鼠标单击打开即可,经过对于歌曲的处理,歌曲名称显示在list列表中。如图2-4所示:图2-4 单文件保存图经过对于文件名的处理,才能显示在list列表中。 3)文件夹保存:文件夹保存如图2-5所示:图2-5 文件夹保存图文件夹选择功能利用了API函数编写的API控件操作完成的。API函数控件写在通用中, 通过调用GetFolder函数来完成文件夹选择功能。接下来调用Showfilelist函数处理文件夹选择的文件。通过单击按钮控件command

9、2,选择歌曲所在的文件夹,这样不能选取文件夹中的歌曲,能整个文件夹选取,Showfilelist函数能够自动删选文件夹中歌曲。经过文件选取,才能显示在list列表中。 2.2.3 删除 1)清空列表:(command3)单击按钮控件command3,list列表中所有歌曲清除。 2)删除列表:(command4)选取list列表中的任意一首歌曲,单击按钮控件command4,此歌曲就在列表中删除了。 3)删除本地文件:(command5)选择一首你想从电脑中删除的歌曲,单击按钮控件command5,歌曲在电脑中就删除了。2.2.4 操作 1)Wmpwmp全称Windows Media Play

10、er,是VB中重要的控件之一,主要实现歌曲播放,暂停,下一首,上一首,调节音量大小的功能,在其他控件代码中调用wmp的方法,就可以实现wmp的基本操作。方法如:playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪,controls.next; 下一曲 controls.previous; 上一曲,controls.play; 播放 controls.pause; 暂停 controls.stop; 停止等。playState:integer;播放状态,这个属性改变的同时引发playStateChange事件和StateChan

11、ge事件。使用:在其他控件中调用方法即可。 2)控制完成对于播放器的一系列控制操作,利用了VB中的菜单编辑器功能,在form1菜单编辑器中编辑控制按键,其中包括顺序播放,随机播放,全部循环,单曲循环。3. 数据结构与算法设计3.1 播放器界面Form1代码:在form1的载入事件中填写代码:Dim x As String, y As String Label1.Caption = If Dir(C:filepath.txt) = Or Dir(C:music.txt) = Then Open C:filepath.txt For Output As #1 Close #1 Open C:mus

12、ic.txt For Output As #2 Close #2 End If /读取文件/ Open C:filepath.txt For Input As #1 Open C:music.txt For Input As #2 Do While Not EOF(1) Input #1, x Input #2, y If Dir(x) Then List1.AddItem (List1.ListCount + 1) & . & y Call wmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count, wmp.newMedia(x) En

13、d If Loop/Do循环,打开文件号1,文件号2,list列表中存有文件号2中的歌曲,wmp调用文件号1歌曲地址,播放文件号1歌曲/ Close #1, #2 Timer1.Enabled = False allloop.Checked = False oneloop.Checked = False rand.Checked = False rule.Checked = True Call wmp.settings.setMode(shuffle, False)/初始设置为顺序播放/ Timer2.Enabled = True3.2 保存3.2.1 多文件保存:在command1控件的单击

14、事件中输入代码: Dim strFileName As String cd.DialogTitle = 打开音乐文件 cd.Filter = mp3|*.mp3|wma|*.wma cd.InitDir = D: /显示起始目录/ cd.Flags = cdlOFNExplorer + cdlOFNAllowMultiselect cd.ShowOpenstrFileName = cd.FileName filename /cd控件/ If (strFileName ) Then Dim sPath, tmpStr As String Dim sFile() As String Dim iCo

15、unt As Integer Dim I As Integer sPath = CurDir() /表示当前路径/ tmpStr = Right$(strFileName, Len(strFileName) - Len(sPath)/应用if语句做一个判断,将选中的歌曲的路径与歌曲名称分开/ If Left$(tmpStr, 1) = Chr$(0) Then/选择了多个文件(分离后第一个字符为Chr$(0)/ For I = 1 To Len(tmpStr) If Mid$(tmpStr, I, 1) = Chr$(0) Then iCount = iCount + 1 ReDim Pres

16、erve sFile(iCount) /重新定义数组/ Else sFile(iCount) = sFile(iCount) & Mid$(tmpStr, I, 1) End If Next I Else/应用for语句先做一个循环,在循环中判断多文件后,将多文件分离成为单文件/ 3.2.2 单文件保存: iCount = 1 ReDim Preserve sFile(iCount) If Left$(tmpStr, 1) = Then tmpStr = Right$(tmpStr, Len(tmpStr) - 1) sFile(iCount) = tmpStr End If3.2.3 文件处

17、理: If Right$(sPath, 1) Then sPath = sPath & Open C:filepath.txt For Append As #1 For I = 1 To iCount Call wmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count, wmp.newMedia(sPath & sFile(I) Write #1, sPath & sFile(I) Next I Close #1 Open C:music.txt For Append As #2 For I = 1 To iCount List1.Add

18、Item (List1.ListCount + 1) & . & Left(sFile(I), Len(sFile(I) - 4) /去掉.mp34个字符/ Write #2, Left(sFile(I), Len(sFile(I) - 4)/应用for循环将歌曲名称后的4个字符去掉,记录在list列表中格式为“数字.歌曲名”/ Next I Close #2 End If3.2.4 文件夹保存:在command2控件的单击事件中输入代码: Dim strFileName As StringstrFileName = GetFolder(Me.hWnd)If (strFileName ) Th

19、en Showfilelist (strFileName)/API函数控件写在通用中, 通过调用GetFolder函数来完成文件夹选择功能。接下来调用Showfilelist函数处理文件夹选择的文件。(与多文件单文件处理方式相同)/Showfilelist函数代码:Private Sub Showfilelist(folderspec) Dim fs, f, f1, fc, s Set fs = CreateObject(Scripting.FileSystemObject) Set f = fs.GetFolder(folderspec) Set fc = f.Files If Right$

20、(folderspec, 1) Then folderspec = folderspec & For Each f1 In fc If (Right$(f1.Name, 3) = mp3 Or Right$(f1.Name, 3) = wma) Then/过滤文件夹中mp3,wma歌曲文件/ Open C:filepath.txt For Append As #1Call wmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count, wmp.newMedia(folderspec & f1.Name)/文件夹文件处理方式与单文件,多文件文件

21、处理方式相同/3.3 删除 3.3.1 清空列表:在command3控件的单击事件中输入代码: List1.Clear wmp.currentPlaylist.Clear Kill C:filepath.txt Kill C:music.txt3.3.2 删除列表:在command4控件的单击事件中输入代码:Dim temp As StringDim I As IntegerIf List1.ListIndex -1 Then Open C:music.txt For Input As #1 Open C:music1.txt For Output As #2 Do Until EOF(1)

22、Input #1, temp If I List1.ListIndex Then Write #2, temp I = I + 1Loop/Do语句做一个循环,处理music.txt文档,将music1.txt替代music.txt,将文件号1中歌曲复制到文件号2中,利用一个变量temp/ Close #1, #2 Kill C:music.txt Name C:music1.txt As C:music.txt /要求完整路径/ I = 0 Open C:filepath.txt For Input As #1 Open C:filepath1.txt For Output As #2 Do

23、 Until EOF(1) Input #1, temp If I List1.ListIndex Then Write #2, temp I = I + 1Loop/同上,替代关系,将文档filepath1.txt替代filepath.txt文档/ Close #1, #2 Kill C:filepath.txt Name C:filepath1.txt As C:filepath.txt Call wmp.currentPlaylist.RemoveItem(wmp.currentPlaylist.Item(List1.ListIndex) /让歌曲在wmp中去除/ List1.Remov

24、eItem (List1.ListIndex) /让歌曲在列表中去除/End If3.3.3 删除本地文件在command5控件的单击事件中输入代码:Do Until EOF(1) Input #1, temp If I List1.ListIndex Then Write #2, temp Else Kill temp /删除本地文件/ End If I = I + 1Loop/与删除文件代码相似,但也有所不同/3.4 操作3.4.1 wmpWmp中不用编写代码,调用wmp中的事件,方法就可以实现歌曲的播放,暂停,下一首,上一首,音量的调整。3.4.2 控制菜单编辑器是VB中重要的一种应用,

25、是显示在窗口界面上端具有选择功能的按键。菜单编辑器如图3-1所示:图3-1 菜单编辑器图 1)顺序播放:Timer1.Enabled = False allloop.Checked = False oneloop.Checked = False rand.Checked = False rule.Checked = True Call wmp.settings.setMode(shuffle, False)/代码最后一行说明默认随机停止/ 2)随机播放: rand.Checked = True Call wmp.settings.setMode(shuffle, True) 3)全部循环: a

26、llloop.Checked = True Call wmp.settings.setMode(loop, True) loop/循环,默认顺序播放/ 4)单曲循环: Timer1.Enabled = Trueoneloop.Checked = True/单曲循环中用到timer控件单曲循环设置/ If wmp.currentMedia.duration - 0.5 wmp.Controls.currentPosition Then Call wmp.Controls.playItem(wmp.currentPlaylist.Item(one)End If /单曲循环设置/4. 程序描述4.1

27、 音乐播放器界面:该窗体是主窗体,整个程序只有一个窗体,其他功能都是由添加控件完成。窗体中大 致分为三个模块:保存,删除,基本操作三部分。该窗体设置了command按钮控件5个,timer时间控件2个,CommonDialog(cd)选取文件控件1个,label标签控件1个,Windows Media Player(wmp)播放器控件1个,list列表控件1个。 1)Form代码:Private Sub Form_Load() Dim x As String, y As String Label1.Caption = /在主窗口载入事件中,首先设置label标签控件,当没有歌曲播放时,标签没有

28、显示任何东西/If Dir(C:filepath.txt) = Or Dir(C:music.txt) = Then Open C:filepath.txt For Output As #1 Close #1 Open C:music.txt For Output As #2 Close #2End If Open C:filepath.txt For Input As #1 Open C:music.txt For Input As #2/利用if语句判断,当建立的两个文档(路径文档,歌曲名称文档)其中一个不为空,则执行打开和载入文档操作,分别定义为文件号1,文件号2/ Do While N

29、ot EOF(1) Input #1, x Input #2, y If Dir(x) Then List1.AddItem (List1.ListCount + 1) & . & yCall wmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count, wmp.newMedia(x)End If/载入歌曲后,设置list列表控件显示的内容,格式为“数字.歌曲名称”,调用wmp控件,wmp控件播放顺序设置为list列表显示的歌曲顺序/ Loop Close #1, #2 Timer1.Enabled = False allloop.Chec

30、ked = False oneloop.Checked = False rand.Checked = False rule.Checked = True/其中allloop为全部循环,oneloop为单曲循环,rand为随机播放,rule为顺序播放/Call wmp.settings.setMode(shuffle, False) /设置初始的播放顺序为顺序播放True,其他播放顺序为False/Timer2.Enabled = True/其中Timer2是设置label控件,每当播放一个歌曲,显示当前播放歌曲名。(详细请看Timer2控件)/End Sub 2)Timer2控件代码:Priv

31、ate Sub Timer2_Timer()If wmp.currentPlaylist.Count 0ThenLabel1.Caption =wmp.currentMedia.getItemInfo(title) End Sub/由此控制label1控件显示,只要有歌曲的播放,就会显示当前播放歌曲名称/4.2 保存:保存分为多文件保存,单文件保存,文件夹保存三个部分。4.2.1 多文件,单文件保存Private Sub Command1_Click() /添加文件/ Dim strFileName As String cd.DialogTitle = 打开音乐文件 cd.Filter = m

32、p3|*.mp3|wma|*.wma cd.InitDir = D: /显示起始目录/ cd.Flags = cdlOFNExplorer + cdlOFNAllowMultiselect cd.ShowOpenstrFileName = cd.FileName filename打开文件夹保存歌曲,过滤文件,多文件选择都利用了CommonDialog(cd)选择文件控件,其中cd属性Filter用于过滤歌曲文件,文件类型为mp3,wma的文件自动显示。cd属性Flags的OFNAllowMultiselect是有多文件选择的功能。filename属性就返回一个包含全部所选文件名的字符串,串中各

33、文件名用空格隔开ctr$(0)。 1)多文件保存代码:If (strFileName ) Then Dim sPath, tmpStr As String Dim sFile() As String Dim iCount As Integer Dim I As Integer/其中iCount 文件数,sPath 路径,sFile() 文件名/ sPath = CurDir() /表示当前路径/ tmpStr = Right$(strFileName, Len(strFileName) - Len(sPath) /将文件名与路径分离,取右部字符(全部所选文件名)/ If Left$(tmpSt

34、r, 1) = Chr$(0) Then/选择了多个文件(分离后第一个字符为Chr$(0)/ For I = 1 To Len(tmpStr) If Mid$(tmpStr, I, 1) = Chr$(0) Then iCount = iCount + 1 ReDim Preserve sFile(iCount) /重新定义数组/ Else sFile(iCount) = sFile(iCount) & Mid$(tmpStr, I, 1) End If Next I/分离多文件,成为单个文件/ 2) 单文件代码: Else iCount = 1 ReDim Preserve sFile(iC

35、ount) If Left$(tmpStr, 1) = Then tmpStr = Right$(tmpStr, Len(tmpStr) - 1) sFile(iCount) = tmpStr End If If Right$(sPath, 1) Then sPath = sPath & /此次操作使单文件路径,歌曲名彻底分开/ 3)文件处理代码:Open C:filepath.txt For Append As #1 For I = 1 To iCount Call wmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count, wmp.newMedia(sPath & sFile(I)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com