实例说明
在本实例中,我们将制作一个MP3播放器。程序运行时,可以选择MP3文件,选择左右声道声音,总共播放所需的时间等。程序运行结果如图61-1所示。
图61-1 运行结果
技术要点
l 注册Mp3Play控件
l 获得MP3文件的播放总时间
l 设置左右声道的声音
l 获得MP3文件的总帧数
实现过程
■ 新建项目
打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"Windows应用程序",在名称域中输入"Mp3Play",然后选择保存路径。单击"确认"。
■ 添加控件
向当前窗体添加七个Label控件,其中四个作为说明之用,其余三个分别用于显示MP3文件的播放时间、总帧数和文件名称。鼠标右击工具箱,选择"自定义工具箱",在弹出的对话框中选择Com组件,选中"Microsoft Common Dialog Control6.0"、"Microsoft Common Controls 6.0"、单击"浏览",选中文件Mp3play.ocx,这时会在""选项卡中出现"Dialog-Media Mp3Play ActiveX Control Module"一项。添加一个CommonDialog控件、三个Slider控件和一个Mp3PlayCtrl控件 。
■ 设置属性
表61-1 属性表
控件 属性 值
SldLeft TickStyle 2-sldBoth
Max 100
Orientation 1-ccOrientationVertical
SldRight 同SldLeft
LblBeijing Text 清华大学
lbltotaltime Autosize True
BackStyle 0-Transparent
Mp3play1 Visible False
其余控件 根据界面设置己可
' 选择mp3文件
Private Sub button1_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles button1.Click
Dim totaltimes As Integer
AXCommonDialog1.ShowOpen()
If Len(AXCommonDialog1.FileName) = 0 Then Exit Sub
Err.Number = Mp3Play1.Open(AXCommonDialog1.FileName,"")
' 取得mp3文件的总时间
totaltimes = Mp3Play1.TotalTime
lbltotaltime.Text = "播放时间:" & Str(totaltimes / 60000) & ":" & Str(Int((totaltimes Mod 60000) / 1000))
lblmp3name.Text = AXCommonDialog1.FileName
' 取得mp3文件的左右声道音量
leftvolume = Mp3Play1.GetVolumeLeft
rightvolume = Mp3Play1.GetVolumeRight
sldPos.Value = 0
' 取得mp3文件的总帧数
sldPos.Max = Mp3Play1.FrameCount
lblframe.Text = "共" & sldPos.Max & "帧"
button2.Enabled = True
button3.Enabled = True
button4.Enabled = True
End Sub
' 开始播放
Private Sub button2_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles button2.Click
Mp3Play1.Play()
End Sub
' 暂停播放
Private Sub button3_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles button3.Click
Mp3Play1.Pause()
End Sub
' 停止播放
Private Sub button4_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles button4.Click
Mp3Play1.Stop()
End Sub
' 程序启动时,必须进行注册,否则不能正确播放
' 设置左右声道默认值为中间值
Private Sub Form1_Load(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles MyBase.Load
Mp3Play1.Authorize("LightBringer","1441658209")
SldLeft.Value = 50
SldRight.Value = 50
' 在没有选择mp3文件之前,令播放、暂停、停止按钮不可用
button2.Enabled = False
button3.Enabled = False
button4.Enabled = False
End Sub
' 改变左声道的音量
Private Sub SldLeft_Change(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles SldLeft.Change
Mp3Play1.SetVolume(leftvolume * SldLeft.Value / 100,rightvolume * SldRight.Value / 100)
End Sub
' 改变播放mp3文件的位置
Private Sub sldPos_Change(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles sldPos.Change
Mp3Play1.Seek(sldPos.Value)
Mp3Play1.Play()
End Sub
■ 运行结果
单击菜单"调试|启动"或单击 图标运行程序。
小结