软件综合课程设计MP3音乐播放器.docx
《软件综合课程设计MP3音乐播放器.docx》由会员分享,可在线阅读,更多相关《软件综合课程设计MP3音乐播放器.docx(32页珍藏版)》请在冰点文库上搜索。
软件综合课程设计MP3音乐播放器
课程设计
软件综合课程设计
班级:
通信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.1wmp.......................................................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.1wmp.......................................................20
4.4.2控制......................................................21
5设计感想......................................................22
参考文献........................................................22
前言
音乐是一种声音的符号,表达人的思想感情,是人们思想的载体之一。
一款好的MP3音乐播放器不仅能够提供好的音乐播放的效果,更能为使用提供舒适的操作。
本款MP3音乐播放器利用VisualBasic6.0对音乐播放器进行编写。
同时给出了详细的系统设计过程,部分界面图及主要功能运行流程图。
该音乐播放器集播放,暂停,下一首,上一首,调节音量,等基本操作,还可以进行歌曲操作,实现全部列表循环,单曲循环,顺序播放,随机播放等功能,对于文件的添加,文件夹的添加,本地文件的删除操作都可以实现,为实现文件夹保存功能,还调用了window的API函数。
设计的指导思想是一切从问题出发,实际出发,界面简约,美观,操作尽量简明,让使用者能够轻松使用,愉快听歌。
1.任务概述
1.1设计题目:
MP3音乐播放器
1.2规则要求及目标:
1)可以同时多个文件选择和文件夹选择功能(一次选择文件夹中的所有文件)。
2)支持文件类型过滤功能。
3)支持顺序播放、随机播放、列表循环播放和单曲循环播放。
4)支持播放列表删除功能和本地文件删除功能。
5)支持播放列表保存功能。
1.3系统运行环境:
Windows7,WindowXP,VisualBasic6.0中文版
1.4条件与限制:
程序要在VisualBasic6.0软件下进行,我所制作的音乐播放器未与网络连接,没有搜索文件的功能,只能播放和添加电脑中已有的歌曲曲目。
2.功能及模块设计
2.1系统功能
1)同时多文件选择(mand1):
通过单击按钮选择文件,经过鼠标右键拖拽可选择多个文件。
2)单文件选择(mand1):
通过单击按钮选择文件,鼠标左键单击即可。
3)文件夹选择:
(mand2):
通过单击按钮选择文件夹,单击打开即可。
4)清空列表(mand3):
通过单击按钮,清空list列表中的歌曲。
5)列表清除(mand4):
通过单击按钮,删除list列表中的任意歌曲。
6)删除文件(mand5):
通过单击按钮,从电脑删除list列表中歌曲本地文件。
7)WindowsMediaPlayer(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个,WindowsMediaPlayer(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全称WindowsMediaPlayer,是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的载入事件中填写代码:
DimxAsString,yAsString
Label1.Caption=""
[IfDir("C:
\filepath.txt")=""OrDir("C:
\music.txt")=""Then
Open"C:
\filepath.txt"ForOutputAs#1
Close#1
Open"C:
\music.txt"ForOutputAs#2
Close#2
EndIf/读取文件/]
Open"C:
\filepath.txt"ForInputAs#1
Open"C:
\music.txt"ForInputAs#2
[DoWhileNotEOF
(1)
Input#1,x
Input#2,y
IfDir(x)<>""Then
List1.AddItem(List1.ListCount+1)&"."&y
Callwmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count,wmp.newMedia(x))
EndIfLoop]
/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
Callwmp.settings.setMode("shuffle",False)]/初始设置为顺序播放/
Timer2.Enabled=True
3.2保存
3.2.1多文件保存:
在command1控件的单击事件中输入代码:
DimstrFileNameAsString
[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
DimsPath,tmpStrAsString
DimsFile()AsString
DimiCountAsInteger
DimIAsInteger
sPath=CurDir()/表示当前路径/
tmpStr=Right$(strFileName,Len(strFileName)-Len(sPath))]
/应用if语句做一个判断,将选中的歌曲的路径与歌曲名称分开/
[IfLeft$(tmpStr,1)=Chr$(0)Then
/选择了多个文件(分离后第一个字符为Chr$(0))/
ForI=1ToLen(tmpStr)
IfMid$(tmpStr,I,1)=Chr$(0)Then
iCount=iCount+1
ReDimPreservesFile(iCount)/重新定义数组/
Else
sFile(iCount)=sFile(iCount)&Mid$(tmpStr,I,1)
EndIf]
NextIElse
/应用for语句先做一个循环,在循环中判断多文件后,将多文件分离成为单文件/
3.2.2单文件保存:
iCount=1
ReDimPreservesFile(iCount)
IfLeft$(tmpStr,1)="\"ThentmpStr=Right$(tmpStr,Len(tmpStr)-1)
sFile(iCount)=tmpStr
EndIf
3.2.3文件处理:
IfRight$(sPath,1)<>"\"ThensPath=sPath&"\"
Open"C:
\filepath.txt"ForAppendAs#1
ForI=1ToiCount
Callwmp.currentPlaylist.insertItem(wmp.currentPlaylist.Count,wmp.newMedia(sPath&sFile(I)))
Write#1,sPath&sFile(I)
NextI
Close#1
Open"C:
\music.txt"ForAppendAs#2
[ForI=1ToiCount
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列表中格式为“数字.歌曲名”/
NextIClose#2
EndIf
3.2.4文件夹保存:
在command2控件的单击事件中输入代码:
DimstrFileNameAsString
strFileName=GetFolder(Me.hWnd)
If(strFileName<>"")ThenShowfilelist(strFileName)
/API函数控件写在通用中,通过调用GetFolder函数来完成文件夹选择功能。
接下来调用Showfilelist函数处理文件夹选择的文件。
(与多文件单文件处理方式相同)/
Showfilelist函数代码:
PrivateSubShowfilelist(folderspec)
Dimfs,f,f1,fc,s
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.GetFolder(folderspec)
Setfc=f.Files
IfRight$(folderspec,1)<>"\"Thenfolderspec=folderspec&"\"
ForEachf1Infc
[If(Right$(f1.Name,3)="mp3"OrRight$(f1.Name,3)="wma")]Then
/过滤文件夹中mp3,wma歌曲文件/
Open"C:
\filepath.txt"ForAppendAs#1
Callwmp.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控件的单击事件中输入代码:
DimtempAsString
DimIAsInteger
IfList1.ListIndex<>-1Then
Open"C:
\music.txt"ForInputAs#1
Open"C:
\music1.txt"ForOutputAs#2
[DoUntilEOF
(1)
Input#1,temp
IfI<>List1.ListIndexThenWrite#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"ForInputAs#1
Open"C:
\filepath1.txt"ForOutputAs#2
[DoUntilEOF
(1)
Input#1,temp
IfI<>List1.ListIndexThenWrite#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"
Callwmp.currentPlaylist.RemoveItem(wmp.currentPlaylist.Item(List1.ListIndex))
/让歌曲在wmp中去除/
List1.RemoveItem(List1.ListIndex)/让歌曲在列表中去除/
EndIf
3.3.3删除本地文件
在command5控件的单击事件中输入代码:
DoUntilEOF
(1)
Input#1,temp
IfI<>List1.List