音乐播放器VB编程源代码.docx
- 文档编号:26818552
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:23
- 大小:232.08KB
音乐播放器VB编程源代码.docx
《音乐播放器VB编程源代码.docx》由会员分享,可在线阅读,更多相关《音乐播放器VB编程源代码.docx(23页珍藏版)》请在冰豆网上搜索。
音乐播放器VB编程源代码
音乐播放器设计
一、先来欣赏一下本音乐播放器的最终效果吧:
设计思路很简单,即下面两个窗体的设计。
二、主窗体(form1)界面设计如下:
主窗体(form1)代码如下:
DimtAsInteger,aAsBoolean
DimpAsInteger,b,wAsBoolean,one
PrivateSuballclear_Click()
'清空播放列表
List1.Clear
WMP1.currentPlaylist.Clear
Form1.Caption="无任何曲目"
EndSub
PrivateSuballloop_Click()
'全部循环播放
Timer3.Enabled=False
allloop.Checked=True
oneloop.Checked=False
rand.Checked=False
rule.Checked=False
CallWMP1.settings.setMode("loop",True)
EndSub
PrivateSubForm_Load()
'初始化
Form1.Height=7800
w=False
allloop.Checked=False
oneloop.Checked=False
rand.Checked=False
rule.Checked=True
Label2.Caption="00:
00"
'第一次打开时创建文件
IfDir("filepath.text")=""AndDir("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
CallWMP1.currentPlaylist.insertItem(WMP1.currentPlaylist.Count,WMP1.newMedia(X))
EndIf
Loop
Close#1
Close#2
'初始化
IfList1.ListCount<>0ThenList1.Selected(0)=True
Picture3(0).Width=114
Picture3(0).Height=52
Picture3(0).PaintPicturePicture2(0).Picture,0,0,114,52,0,0,114,52
Picture3
(1).PaintPicturePicture2
(2).Picture,0,0,60,52,0,0,60,52
Picture3
(2).PaintPicturePicture2(3).Picture,0,0,83,52,0,0,83,52
Picture3(4).PaintPicturePicture2(5).Picture,0,0,60,52,0,0,60,52
Picture3(3).PaintPicturePicture2(4).Picture,0,0,83,52,0,0,83,52
Picture11.PaintPicturePicture12.Picture,0,0,19,23,0,0,19,23
a=False
CallWMP1.settings.setMode("shuffle",False)'初始设置为顺序播放
Label1.Caption=Mid(List1.List(0),InStr(List1.List(0),".")+1)
sd1.Value=50'音量设置为50%
EndSub
PrivateSubList1_DblClick()
'双击播放
CallWMP1.Controls.playItem(WMP1.currentPlaylist.Item(List1.ListIndex))
a=True
t=1
Picture3(0).PaintPicturePicture2
(1).Picture,0,0,114,52,0,0,114,52
EndSub
PrivateSubList1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfX>List1.Width-430Then
w=True
EndIf
EndSub
PrivateSubList1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
'伸缩播放列表
IfX>List1.Width-430AndX List1.MousePointer=9 Else List1.MousePointer=0 EndIf Ifw=TrueAndX>1500AndX<5800Then List1.Width=X EndIf EndSub PrivateSubList1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) w=False EndSub PrivateSubList1_Scroll() List1.MousePointer=0 EndSub PrivateSuboneloop_Click() '单曲循环 allloop.Checked=False oneloop.Checked=True rand.Checked=False rule.Checked=False Timer3.Enabled=True EndSub PrivateSubPc13_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) '播放进度控制 IfWMP1.playState=wmppsPlayingThen WMP1.Controls.currentPosition=WMP1.currentMedia.duration*X/233 Pc13.Cls Pc13.PaintPicturePc14.Picture,0,0,233,17,234-X,0,233,17 EndIf EndSub PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) '切换图片 Ift=0Then Picture3(0).PaintPicturePicture2(0).Picture,0,0,114,52,0,0,114,52 EndIf Ift=1Then Picture3(0).PaintPicturePicture2 (1).Picture,0,0,114,52,0,0,114,52 EndIf Picture3 (1).PaintPicturePicture2 (2).Picture,0,0,60,52,0,0,60,52 Picture3 (2).PaintPicturePicture2(3).Picture,0,0,83,52,0,0,83,52 Picture3(4).PaintPicturePicture2(5).Picture,0,0,60,52,0,0,60,52 Picture3(3).PaintPicturePicture2(4).Picture,0,0,83,52,0,0,83,52 EndSub PrivateSubPicture10_Click() '打开搜索窗体 Form2.Show EndSub PrivateSubPicture11_Click() '设置静音 sd1.Value=0 Picture11.PaintPicturePicture12.Picture,0,0,19,23,38,0,19,23 EndSub PrivateSubPicture3_MouseDown(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) IfIndex=0Then Ifa=TrueThen CallWMP1.Controls.pause'播放 Else CallWMP1.Controls.play'暂停 EndIf EndIf IfIndex=3Then p=1 CallWMP1.Controls.Next'下一首 p=0 EndIf IfIndex=2Then p=1 CallWMP1.Controls.previous'上一首 p=0 EndIf IfIndex=4ThenCallWMP1.Controls.stop'停止播放 '打开音乐文件 IfIndex=1Then CommonDialog1.DialogTitle="打开音乐文件" CommonDialog1.Filter="mp3|*.mp3|wma|*.wma" CommonDialog1.InitDir="D: \" CommonDialog1.ShowOpen fname=CommonDialog1.FileTitle gname=CommonDialog1.FileName Iffname<>""Then n=Len(fname) Fori=0ToList1.ListCount-1 IfRight(List1.List(i),n-4)=Left(fname,n-4)Then CallWMP1.Controls.playItem(WMP1.currentPlaylist.Item(i))'播放添加后的歌曲 Timer1.Enabled=True List1.ListIndex=i ExitSub EndIf Next List1.AddItem(List1.ListCount+1)&"."&Left(fname,n-4)'歌曲无重复则添加到播放列表,否则不再添加 CallWMP1.currentPlaylist.insertItem(WMP1.currentPlaylist.Count,WMP1.newMedia(gname)) List1.ListIndex=List1.ListCount-1 List1.Selected(i)=True CallWMP1.Controls.playItem(WMP1.currentPlaylist.Item(List1.ListIndex)) Timer1.Enabled=True EndIf EndIf EndSub PrivateSubPicture3_MouseMove(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) '根据不同情况切换图片,实现动态按钮功能 IfIndex=0Then Ift=0Then IfX<6OrX>80OrY<6OrY>48Then Picture3(0).PaintPicturePicture2(0).Picture,0,0,114,52,0,0,114,52 Else Picture3(0).PaintPicturePicture2(0).Picture,0,0,114,52,228,0,114,52 EndIf EndIf Ift=1Then IfX<6OrX>80OrY<6OrY>48Then Picture3(0).PaintPicturePicture2 (1).Picture,0,0,114,52,0,0,114,52 Else Picture3(0).PaintPicturePicture2 (1).Picture,0,0,114,52,228,0,114,52 EndIf EndIf EndIf IfIndex=1Then IfX<6OrX>55OrY<6OrY>48Then Picture3 (1).PaintPicturePicture2 (2).Picture,0,0,60,52,0,0,60,52 Else Picture3 (1).PaintPicturePicture2 (2).Picture,0,0,60,52,60,0,60,52 EndIf EndIf IfIndex=2Then IfX<6OrX>65OrY<6OrY>48Then Picture3 (2).PaintPicturePicture2(3).Picture,0,0,83,52,0,0,83,52 Else Picture3 (2).PaintPicturePicture2(3).Picture,0,0,83,52,83,0,83,52 EndIf EndIf IfIndex=3Then IfX<6OrX>65OrY<6OrY>48Then Picture3(3).PaintPicturePicture2(4).Picture,0,0,83,52,0,0,83,52 Else Picture3(3).PaintPicturePicture2(4).Picture,0,0,83,52,166,0,83,52 EndIf EndIf IfIndex=4Then IfX<6OrX>55OrY<6OrY>48Then Picture3(4).PaintPicturePicture2(5).Picture,0,0,60,52,0,0,60,52 Else Picture3(4).PaintPicturePicture2(5).Picture,0,0,60,52,120,0,60,52 EndIf EndIf EndSub PrivateSubPicture4_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) '图片切换' Ift=0Then Picture3(0).PaintPicturePicture2(0).Picture,0,0,114,52,0,0,114,52 EndIf Ift=1Then Picture3(0).PaintPicturePicture2 (1).Picture,0,0,114,52,0,0,114,52 EndIf Picture3 (1).PaintPicturePicture2 (2).Picture,0,0,60,52,0,0,60,52 Picture3 (2).PaintPicturePicture2(3).Picture,0,0,83,52,0,0,83,52 Picture3(4).PaintPicturePicture2(5).Picture,0,0,60,52,0,0,60,52 Picture3(3).PaintPicturePicture2(4).Picture,0,0,83,52,0,0,83,52 EndSub PrivateSubPicture5_Click() '显示或隐藏播放列表 Ifb=0Then Form1.Width=5940 Form1.Height=3900 b=1 Picture5.ToolTipText="显示播放列表" Else Form1.Width=5940 Form1.Height=7800 b=0 Picture5.ToolTipText="隐藏播放列表" EndIf EndSub PrivateSubPicture6_Click() '最小化窗体 Form1.WindowState=1 EndSub PrivateSubPicture7_Click() '关闭窗体之前保存播放列表数据 Open"C: \filepath.txt"ForOutputAs#1 Open"C: \music.txt"ForOutputAs#2 Fori=0ToList1.ListCount-1 n=InStr(List1.List(i),".") Write#1,WMP1.currentPlaylist.Item(i).sourceURL Write#2,Mid(List1.List(i),n+1) Next Close#1 Close#2 End EndSub PrivateSubPicture8_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) '播放模式设置菜单 PopupMenumenuset EndSub PrivateSubPicture9_Click() '删除菜单 PopupMenugclear EndSub PrivateSubrand_Click() '随机播放 Timer3.Enabled=False allloop.Checked=False oneloop.Checked=False rand.Checked=True rule.Checked=False CallWMP1.settings.setMode("shuffle",True) EndSub PrivateSubrule_Click() '顺序播放 Timer3.Enabled=False allloop.Checked=False oneloop.Checked=False rand.Checked=False rule.Checked=True CallWMP1.settings.setMode("shuffle",False) EndSub PrivateSubsd1_Change() '音量控制条 WMP1.settings.volume=sd1.Value sd1.ToolTipText="音量"&sd1.Value&"%'" Ifsd1.Value=0Thensd1.ToolTipText="静音" Ifsd1.Value=100Thensd1.ToolTipText="最大音量" Ifsd1.Value<>0Then Picture11.PaintPicturePicture12.Picture,0,0,19,23,0,0,19,23 EndIf EndSub PrivateSubselect_Click() '删除选中项 Fori=0ToList1.ListCount-1 IfList1.Selected(i)Then List1.RemoveItem(i) m=i CallWMP1.currentPlaylist.RemoveItem(WMP1.currentPlaylist.Item(i)) ExitFor EndIf Next Fori=0ToList1.ListCount-1 n=InStr(List1.List(i),".") List1.List(i)=(i+1)&"."&Mid(List1.List(i),n+1) Next IfList1.ListCount=0ThenExitSub IfList1.ListCount=mThen List1.Selected(m-1)=True Else List1.Selected(m)=True EndIf EndSub PrivateSubTimer1_Timer() '更新播放动态 IfWMP1.currentPlaylist.Count<>0Then IfWMP1.playState=3Then Label2.Caption=WMP1.Controls.currentPositionString Picture3(0).PaintPicturePicture2 (1).Picture,0,0,114,52,0,0,114,52 a=True t=1 Picture3(0).ToolTipText="播放" Else Label2.Caption="00: 00" Picture3(0).PaintPicturePicture2(0).Picture,0,0,114,52,0,0,114,52 a=False
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 播放 VB 编程 源代码