利用VB实现多媒体播放器Word格式.docx
《利用VB实现多媒体播放器Word格式.docx》由会员分享,可在线阅读,更多相关《利用VB实现多媒体播放器Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
本节主要介绍了利用API函数制作WAV音频播放器,首先来介绍一下PlaySound()函数。
它的声明形式如下所示:
PrivateDeclareFunctionPlaySoundLib"
winmm.dll"
Alias"
PlaySoundA"
(ByVallpszNameAsString,ByValhModuleAsInteger,ByValdwFlagsAsInteger)AsInteger
字符串lpszName为声音文件的全名。
长整型hModule为程序模块的句柄,通常设置为0。
长整型dwFlags标志设置,在使用文件名时设置为&
20000。
•
添加控件
新建一个项目,在项目里添加windows窗体“form1”,把它的“Text”属性改为“API_音频播放”。
在“form1”上添加一个DriveListBox控件做为驱动器列表框,一个DirListBox控件做为目录列表框,一个FileListBox控件做为文件列表框,一个Button控件做为命令按钮,五个Label控件做为标识。
把Label1的Text属性改成“驱动器”来标识DriveListBox控件,把Label2的Text属性改成“目录”来标识DirListBox控件,把Label3的Text属性改成“文件”来标识FileListBox控件,再把FileListBox控件的Pattern属性设置为*.WAV,这样就能过滤掉其他类型的文件,Label4的Text属性改成“所选的声音文件全名”,Label5的Text属性显示声音文件的完全路径。
把Button的Text属性改成“播放”。
参见图1
图1
添加代码
双击DriveListBox1控件后进入代码编辑窗口,首先添加如下所示的程序声明代码:
OptionStrictOff
OptionExplicitOn
FriendClassForm1
InheritsSystem.Windows.Forms.Form
'
播放声音的API函数
(ByVallpszNameAsString,ByValhModuleAsInteger,ByValdwFlagsAsInteger)AsInteger
DimstrSoundAsString
函数声明
在“PrivateSubDriveListBox1_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesDriveListBox1.SelectedIndexChanged”与“EndSub”之间添加代码:
驱动器改变
DirListBox1.Path=DriveListBox1.Drive
双击DirListBox1控件,添加代码:
目录改变
FileListBox1.Path=DirListBox1.Path
双击FileListBox1控件,添加代码:
文件改变
strSound=DirListBox1.Path&
"
\"
&
FileListBox1.FileName
双击Label5控件,添加代码:
strSound=DirListBox1.Path+"
+FileListBox1.FileName
Label5.Text=strSound
双击Button1控件,添加代码:
播放音频文件
DimlngRetAsInteger
IfstrSound="
Then'
不选择声音文件直接播放
lngRet=PlaySound("
c:
\Windows\Media\TheMicrosoftSound"
0,&
H20000)
Else'
选择声音文件后播放
lngRet=PlaySound(strSound,0,&
EndIf
在“PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load”与“EndSub”之间添加代码:
为文件名赋初值
strSound="
3.运行
完成所有的代码书写后,保存文件并运行程序。
运行后的程序大致如图2所示,
图2
各个框框里的容也许因人而异,但结构差不多相同,如果不选择文件,直接单击“播放”,则播放的我们所熟悉的Windows98启动的声音。
当然你也可以选择自己喜欢的音乐文件进行播放,但是文件名必须是*.WAV。
实验2MP3播放器
1.添加控件
新建一个Windows应用程序,把Form1的“Text”属性改为“MP3Player”。
添加一个MainMenu控件,选中控件MainMenu1,点击鼠标右键,在弹出的菜单里选择“编辑菜单”进入菜单编辑窗口,如图:
选中MenuItem1,点击鼠标右键,选择“新插入”,共插入4个MenuItem,它的属性如下表:
控件类别
控件名称
属性
设置结果
MainMenu
MenuItem1
Text
文件
MenuItem2
打开文件
MenuItem3
清除列表
MenuItem4
退出
添加一个ListBox控件,把Name属性改为“List”,用于显示曲目列表。
添加3个Button控件,它们的属性如下表:
Button
Button1
播放
Button2
暂停
Button3
停止
添加一个OpenFileDialog控件,用于显示打开对话框。
添加一个MMControl控件,把Visible属性设置为“False”,这样就把MMControl控件隐藏了。
MMControl控件通常不在“工具栏”里,可以通过点击菜单栏上的“工具”→“添加/移除工具箱项”,在COM组件里找到“MicrosoftMultimediaControl”项,选中然后确定即可。
如图:
添加控件完毕后的界面如图:
双击“打开文件”菜单,添加如下代码:
DimpathNames()AsString
定义多选文件路径
DimsFileAsString
定义选取的文件路径
DimflagAsBoolean=False
判断用户双击的区域是否在列表项上
PrivateSubMenuItem2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMenuItem2.Click
WithMe.OpenFileDialog1
.Title="
打开音乐文件"
.Multiselect=True
.Filter="
音乐文件(*.mp3)|*.mp3|(*.mid)|*.mid"
.ShowDialog()
pathNames=.FileNames
EndWith
DimpathAsString
ForEachpathInpathNames
Me.List.Items.Add(path)
Next
添加文件路径到播放列表中
EndSub
双击“清除列表”菜单,添加如下代码:
PrivateSubMenuItem3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMenuItem3.Click
Me.List.Items.Clear()
双击“退出”菜单,添加如下代码:
PrivateSubMenuItem4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMenuItem4.Click
Me.MCIControl.Command="
Stop"
Close"
Me.Close()
双击ListBox控件,在代码编辑窗口的右上的下拉菜单中,选择“DoubleClick”,如图:
添加如下代码:
PrivateSubList_DoubleClick(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesList.DoubleClick
flag=True
OnErrorResumeNext
sFile=Me.List.SelectedItem
Me.MCIControl.FileName=sFile
Open"
Play"
双击“播放”按钮,添加如下代码:
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
双击“暂停”按钮,添加如下代码:
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
Pause"
双击“停止”按钮,添加如下代码:
PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click
Prev"
运行
完成代码后,保存文件,并按F5调试运行,打开音乐文件(*.mp3),可以同时打开多个文件,在列表框将出现所选择的文件列表,双击任意一首歌曲,就能进行播放,运行结果如图所示:
实验3CD播放器
新建一个Windows应用程序,把Form1的“Text”属性改为“CDPlayer”。
唱片
载入
弹出
添加一个ListBox控件,把Name属性改为“Tracks”。
添加一个StatusBar控件,把ShowPanels属性设为“True”,再添加两个StatusBarPanel,并讲它们的Alignment属性都改为“Center”,AutoSize属性都改为“Spring”。
添加一个Timer控件,把Interval属性设为“1000”,Enable属性设为“True”。
添加一个MMControl控件,把Name属性改为“MCIControl”,所有按钮的Enable属性都设为“True”。
可通过如下的方法设置按钮的属性:
选中Form1上的MMControl控件,点击鼠标右键,在弹出的菜单里选择“ActiveX–属性”,点击“控件”选项,然后把所有控件的“*有效”选项都选中如图:
如果你在“工具栏”里找不到MMControl控件,可以通过点击菜单栏上的“工具”→“添加/移除工具箱项”,在COM组件里找到“MicrosoftMultimediaControl”项,选中然后确定即可。
双击ListBox控件,添加如下代码:
PrivateSubTracks_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTracks.SelectedIndexChanged
在代码编辑窗口的右上下拉菜单中,选择DoubleClick,如图:
然后添加如下代码:
PrivateSubTracks_DoubleClick(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesTracks.DoubleClick
实现双机更改曲目功能
Try
IfMe.Tracks.SelectedIndex>
=0Andflag=TrueThen
flag=False
Me.MCIControl.Track=Me.Tracks.SelectedIndex+1
Me.MCIControl.From=Me.MCIControl.TrackPosition
CatchexAsException
EndTry
双击“载入”控件,添加如下代码:
DimiAsInteger
选取豪秒作为时间单位
Me.MCIControl.TimeFormat=0
Me.MCIControl.Track=1
从第1首的开始位置起播放
IfMCIControl.ErrorThen
MessageBox.Show("
CDERROR"
)
ExitSub
Me.MCIControl.EjectEnabled=True
将所有曲目列于表中
Fori=1ToMCIControl.Tracks
Tracks.Items.Add("
track"
i)
IfTracks.Items.Count>
0Then
Me.Tracks.SelectedIndex=0
Else
Timer1.Enabled=True
双击“弹出”控件,添加如下代码:
Eject"
双击“退出”控件,添加如下代码:
双击MMControl控件,选择“StatusUpdate”添加如下代码:
PrivateSubMCIControl_StatusUpdate(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMCIControl.StatusUpdate
IfMe.MCIControl.Mode=526Then
Timer1.Enabled=False
双击Timer控件,添加如下代码:
PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.Tick
更新状态栏
Me.StatusBarPanel1.Text="
CD共有曲目"
Me.MCIControl.Tracks&
首"
Me.StatusBarPanel2.Text="
现在正在播放第"
Me.MCIControl.Track&
双击Form窗体,进入代码编辑界面,添加如下代码:
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.FormBorderStyle=System.Windows.Forms.FormBorderStyle.FixedSingle
Me.MaximizeBox=False
MCIControl.RecordVisible=False
MCIControl.EjectEnabled=False
设置设备类型
MCIControl.DeviceType="
CDAudio"
等待"
请放入CD并加载"
然后在代码编辑窗口的右上下拉菜单中,选择“Closing”,添加如下代码:
PrivateSubForm1_Closing(ByValsenderAsObject,ByValeAsSystem.ComponentModel.CancelEventArgs)HandlesMyBase.Closing
MCIControl.Command="
Close'
"
EndSub
完成代码后,保存文件,并按F5调试运行,放入一CD到CDROM中,运行的结果如图:
实验4视频播放器
在这一例中,我们将利用MCI控件制作一个播放视频文件的程序,程序具备以下功能:
·
具有播放视频文件的能力。
选择并打开将播放的文件。
播放文件,具备Play(播放)、Stop(停止)等常见的播放功能。
有进度条指示目前的播放进度。
具备被循环播放功能。
具备静音功能。
新建一个Windows应用程序,把Form1的“Tex