收藏 分销(赏)

件软综合课程设计mp3音乐播放器.doc

上传人:天**** 文档编号:2197125 上传时间:2024-05-22 格式:DOC 页数:27 大小:363.50KB 下载积分:10 金币
下载 相关 举报
件软综合课程设计mp3音乐播放器.doc_第1页
第1页 / 共27页
件软综合课程设计mp3音乐播放器.doc_第2页
第2页 / 共27页


点击查看更多>>
资源描述
课程设计 软件综合课程设计  班 级: 通信2班 姓 名: 闫振宇 学 号: 1306030222 指导教师: 徐维 成 绩: 电子与信息工程学院 信息与通信工程系 目录 前言.............................................................1 1 任务概述.......................................................1 1.1 设计题目.....................................................1 1.2 规则要求及目标...............................................1 1.3 运行环境.....................................................1 1.4 条件与限制...................................................1 2 功能及模板设计.................................................1 2.1 系统功能.....................................................1 2.2 模板设计.....................................................2 2.2.1 播放器界面.................................................3 2.2.2 保存.......................................................3 2.2.3 删除.......................................................5 2.2.4 操作.......................................................5 3 数据结构与算法设计.............................................5 3.1 播放器界面...................................................5 3.2 保存.........................................................6 3.2.1 多文件保存.................................................6 3.2.2 单文件保存.................................................7 3.2.3 文件处理...................................................8 3.2.4 文件件保存.................................................8 3.3 删除.........................................................9 3.3.1 清空列表...................................................9 3.3.2 删除列表...................................................9 3.3.3 删除本地文件..............................................10 3.4 操作........................................................11 3.4.1 wmp.......................................................11 3.4.2 控制......................................................11 4 程序描述......................................................12 4.1 音乐播放器的界面............................................12 4.2 保存........................................................14 4.2.1 多文件 单文件保存.........................................14 4.2.2 文件夹保存................................................16 4.3 删除........................................................17 4.3.1 清空列表..................................................17 4.3.2 删除列表..................................................17 4.3.3 删除本地文件..............................................19 4.4 操作........................................................20 4.4.1 wmp.......................................................20 4.4.2 控制......................................................21 5 设计感想......................................................22 参考文献........................................................22 前言 音乐是一种声音的符号,表达人的思想感情,是人们思想的载体之一。一款好的MP3音乐播放器不仅能够提供好的音乐播放的效果,更能为使用提供舒适的操作。 本款MP3音乐播放器利用Visual Basic 6.0对音乐播放器进行编写。同时给出了详细的系统设计过程,部分界面图及主要功能运行流程图。 该音乐播放器集播放,暂停,下一首,上一首,调节音量,等基本操作,还可以进行歌曲操作,实现全部列表循环,单曲循环,顺序播放,随机播放等功能,对于文件的添加,文件夹的添加,本地文件的删除操作都可以实现,为实现文件夹保存功能,还调用了window的API函数。 设计的指导思想是一切从问题出发,实际出发,界面简约,美观,操作尽量简明,让使用者能够轻松使用,愉快听歌。 1. 任务概述 1.1 设计题目:MP3音乐播放器 1.2 规则要求及目标:  1) 可以同时多个文件选择和文件夹选择功能(一次选择文件夹中的所有文件)。 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):通过单击按钮选择文件,经过鼠标右键拖拽可选择多个文件。 2) 单文件选择(mand1):通过单击按钮选择文件,鼠标左键单击即可。 3) 文件夹选择:(mand2):通过单击按钮选择文件夹,单击打开即可。 4) 清空列表(mand3):通过单击按钮,清空list列表中的歌曲。 5) 列表清除(mand4):通过单击按钮,删除list列表中的任意歌曲。 6) 删除文件(mand5):通过单击按钮,从电脑删除list列表中歌曲本地文件。 7) Windows Media Player(form1.wmp):通过单击,实现歌曲播放,暂停,下一首,上一首,声量调整。 8) 控制播放类型:(form1.菜单编辑器):通过单击,实现歌曲全部循环,单曲循环,顺序播放,随机播放。 2.2 模板设计 关于模板设计,在设计初期,利用VB的可视化编程特性,先建立窗口(音乐播放器界面),在音乐播放器的界面上设置按钮,其中按功能可分成三个部分,分别为保存,删除,操作。保存设置按照要求有添加文件选项,添加文件夹选项,删除设置中按照要求有清空列表,删除列表,删除本地文件等按钮。保存和删除操作都是由建立的两个文档相互联系,操作也是调用文档内容进行一系列操作与控制。模板设计如图2-1所示: 音乐播放器界面 删除 操作 保存 清空列表 删除列表 删除本地文件 添加文件夹 添加文件 wmp 全部循环 文档1 Filepath.txt 文档2 music.txt 顺序播放 随机播放 单曲循环 如图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控件按钮,选择歌曲存储的文件夹,选择你所选取的多首歌曲。鼠标单击打开即可,经过对于歌曲的处理,歌曲名称显示在list列表中。如图2-3所示: 图2-3 多文件保存图 2) 单文件保存: 鼠标单击command1控件按钮,选择歌曲存储的文件夹,选择你所选取的歌曲。鼠标单击打开即可,经过对于歌曲的处理,歌曲名称显示在list列表中。如图2-4所示: 图2-4 单文件保存图 经过对于文件名的处理,才能显示在list列表中。 3)文件夹保存: 文件夹保存如图2-5所示: 图2-5 文件夹保存图 文件夹选择功能利用了API函数编写的API控件操作完成的。API函数控件写在通用中, 通过调用GetFolder函数来完成文件夹选择功能。 接下来调用Showfilelist函数处理文件夹选择的文件。 通过单击按钮控件command2,选择歌曲所在的文件夹,这样不能选取文件夹中的歌曲,能整个文件夹选取,Showfilelist函数能够自动删选文件夹中歌曲。经过文件选取,才能显示在list列表中。 2.2.3 删除 1)清空列表:(command3)单击按钮控件command3,list列表中所有歌曲清除。 2)删除列表:(command4)选取list列表中的任意一首歌曲,单击按钮控件command4,此歌曲就在列表中删除了。 3)删除本地文件:(command5)选择一首你想从电脑中删除的歌曲,单击按钮控件command5,歌曲在电脑中就删除了。 2.2.4 操作 1)Wmp wmp全称Windows Media Player,是VB中重要的控件之一,主要实现歌曲播放,暂停,下一首,上一首,调节音量大小的功能,在其他控件代码中调用wmp的方法,就可以实现wmp的基本操作。方法如:playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪,controls.next; 下一曲 controls.previous; 上一曲,controls.play; 播放 controls.pause; 暂停 controls.stop; 停止等。playState:integer;播放状态,这个属性改变的同时引发playStateChange事件和StateChange事件。 使用:在其他控件中调用方法即可。 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:\music.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)) End 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 = True 3.2 保存 3.2.1 多文件保存: 在command1控件的单击事件中输入代码: Dim strFileName As String [cd.DialogTitle = "打开音乐文件" cd.Filter = "mp3|*.mp3|wma|*.wma" cd.InitDir = "D:\" /显示起始目录/ cd.Flags = cdlOFNExplorer + cdlOFNAllowMultiselect cd.ShowOpen strFileName = cd.FileName 'filename] /cd控件/ [If (strFileName <> "") Then Dim sPath, tmpStr As String Dim sFile() As String Dim iCount 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 Preserve 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 If 3.2.3 文件处理: 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.AddItem (List1.ListCount + 1) & "." & Left(sFile(I), Len(sFile(I)) - 4) /去掉".mp3"4个字符/ Write #2, Left(sFile(I), Len(sFile(I)) - 4)] /应用for循环将歌曲名称后的4个字符去掉,记录在list列表中格式为“数字.歌曲名”/ Next I Close #2 End If 3.2.4 文件夹保存: 在command2控件的单击事件中输入代码: Dim strFileName As String strFileName = GetFolder(Me.hWnd) If (strFileName <> "") Then 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$(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 #1 Call wmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count, wmp.newMedia(folderspec & f1.Name)) /文件夹文件处理方式与单文件,多文件文件处理方式相同/ 3.3 删除 3.3.1 清空列表: 在command3控件的单击事件中输入代码: List1.Clear wmp.currentPlaylist.Clear Kill "C:\filepath.txt" Kill "C:\music.txt" 3.3.2 删除列表: 在command4控件的单击事件中输入代码: Dim temp As String Dim I As Integer If List1.ListIndex <> -1 Then Open "C:\music.txt" For Input As #1 Open "C:\music1.txt" For Output As #2 [Do Until EOF(1) Input #1, temp If I <> List1.ListIndex Then Write #2, temp I = I + 1 Loop] /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 Until EOF(1) Input #1, temp If I <> List1.ListIndex Then Write #2, temp I = I + 1 Loop] /同上,替代关系,将文档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.RemoveItem (List1.ListIndex) /让歌曲在列表中去除/ End If 3.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 + 1 Loop /与删除文件代码相似,但也有所不同/ 3.4 操作 3.4.1 wmp Wmp中不用编写代码,调用wmp中的事件,方法就可以实现歌曲的播放,暂停,下一首,上一首,音量的调整。 3.4.2 控制 菜单编辑器是VB中重要的一种应用,是显示在窗口界面上端具有选择功能的按键。 菜单编辑器如图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)全部循环: allloop.Checked = True Call wmp.settings.setMode("loop", True) loop/循环,默认顺序播放/ 4)单曲循环: Timer1.Enabled = True oneloop.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 音乐播放器界面: 该窗体是主窗体,整个程序只有一个窗体,其他功能都是由添加控件完成。窗体中大 致分为三个模块:保存,删除,基本操作三部分。 该窗体设置了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标签控件,当没有歌曲播放时,标签没有显示任何东西/ 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 #2 End If Open "C:\filepath.txt" For Input As #1 Open "C:\music.txt" For Input As #2 /利用if语句判断,当建立的两个文档(路径文档,歌曲名称文档)其中一个不为空,则执行打开和载入文档操作,分别定义为文件号1,文件号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)) End If /载入歌曲后,设置list列表控件显示的内容,格式为“数字.歌曲名称”,调用wmp控件,wmp控件播放顺序设置为list列表显示的歌曲顺序/ Loop Close #1, #2 Timer1.Enabled = False allloop.Checked = 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控件代码: Private 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 = "mp3|*.mp3|wma|*.wma" cd.InitDir = "D:\" /显示起始目录/ cd.Flags = cdlOFNExplorer + cdlOFNAllowMultiselect cd.ShowOpen strFileName = cd.FileName 'filename 打开文件夹保存歌曲,过滤文件,多文件选择都利用了CommonDialog(cd)选择文件控件,其中cd属性Filter用于过滤歌曲文件,文件类型为mp3,wma的文件自动显示。 cd属性Flags的OFNAllowMultiselect是有多文件选择的功能。filename属性就返回一个包含全部所选文件名的字符串,串中各文件名用空格隔开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$(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 Preserve sFile(iCount) /重新定义数组/ Else sFile(iCount) = sFile(iCount) & Mid$(tmpStr, I, 1) End If Next I /分离多文件,成为单个文件/ 2) 单文件代码: Else iCount = 1 ReDim Preserve sFile(iCount) 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)))
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 声乐器乐

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服