技术要点
l 注册 Mp3Play 控件
l 获得 MP3 文件的播放总时间
l 设置左右声道的声音
l 获得 MP3 文件的总帧数
实现过程
■新建项目
打开 VisualStudio.NET ,选择“新建项目”,在项目类型窗口中选择“ Visual Basic 项目”,在模板窗口中选择“ Windows 应用程序”,在名称域中输入“ Mp3Play ”,然后选择保存路径。单击“确认”。
■添加控件
向当前窗体添加七个 Label 控件,其中四个作为说明之用,其余三个分别用于显示 MP3 文件的播放时间、总帧数和文件名称。鼠标右击工具箱,选择“自定义工具箱”,在弹出的对话框中选择 Com 组件,选中“ MicrosoftCommon Dialog Control6.0 ” 、“ Microsoft Common Controls 6.0 ” 、单击“浏览”,选中文件 Mp3play.ocx ,这时会在 “” 选项卡中出现“ Dialog-Media Mp3Play ActiveXControl 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(ByValeventSender As System.Object,ByVal eventArgs As System.EventArgs) Handlesbutton1.Click
Dim totaltimes As Integer
AXCommonDialog1.ShowOpen()
If Len(AXCommonDialog1.FileName) = 0 ThenExit Sub
Err.Number = Mp3Play1.Open(AXCommonDialog1.FileName,"")
'取得mp3文件的总时间
totaltimes = Mp3Play1.TotalTime
lbltotaltime.Text = "播放时间:" &Str(totaltimes \ 60000) & ":" & Str(Int((totaltimes Mod60000) / 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 Subbutton2_Click(ByVal eventSender As System.Object,ByVal eventArgs AsSystem.EventArgs) Handles button2.Click
Mp3Play1.Play()
End Sub
'暂停播放
Private Subbutton3_Click(ByVal eventSender As System.Object,ByVal eventArgs AsSystem.EventArgs) Handles button3.Click
Mp3Play1.Pause()
End Sub
'停止播放
Private Subbutton4_Click(ByVal eventSender As System.Object,ByVal eventArgs AsSystem.EventArgs) Handles button4.Click
Mp3Play1.Stop()
End Sub
'程序启动时,必须进行注册,否则不能正确播放
'设置左右声道默认值为中间值
Private SubForm1_Load(ByVal eventSender As System.Object,ByVal eventArgs AsSystem.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 SubSldLeft_Change(ByVal eventSender As System.Object,ByVal eventArgs AsSystem.EventArgs) Handles SldLeft.Change
Mp3Play1.SetVolume(leftvolume * SldLeft.Value / 100,rightvolume *SldRight.Value / 100)
End Sub
'改变播放mp3文件的位置
Private SubsldPos_Change(ByVal eventSender As System.Object,ByVal eventArgs AsSystem.EventArgs) Handles sldPos.Change
Mp3Play1.Seek(sldPos.Value)
Mp3Play1.Play()
End Sub