您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页如何用VB实现MP3播放功能

如何用VB实现MP3播放功能

来源:意榕旅游网


如何用VB实现MP3播放功能?

http://www.hackbase.com 2004-9-29

黑客基地 本文作者曾经读过不少关于如何用VB实现播放MP3格式音乐文件的文章。这些文章所介绍的方法都具有一个相同的特点,即要借助某个第三方提供的具有专门的MP3解码功能的控件。能不能直接利用VB自身所提供的多媒体控件来实现MP3播放功能呢?答案是肯定的。任何一种编码格式的音、视频文件都要通过其相应的解码器解码后才能实现播放的

目的,MP3也不例外。Microsoft在Win9x系统中已经内置了MP3的解码驱动,因此我们完全可以利用它直接对MP3进行解码,从而实现播放MP3的目的。在编码上,我们只需在C:\\windows\\system.ini文件的[MCI]项目中添加命令行:mp3audio=mciqtz.drv 使VB自身所提供的多媒体控件能够正确调用相应的解码器对MP3进行解码就足够了。

下面就让我们利用VB自带的MMControl控件做一个MP3播放器

实例。

实现步骤如下:

一、 绘制窗体:(见下图)

1.新建一个工程,在窗体中加入

MMControl控件,名称为MP3Player(通过在工具箱上单击鼠标右键弹出的菜单中选择[部件],并在弹出的部件对话框中选中Microsoft Multimedia Control 6.0 可以将MMControl控件添加至工具箱中备

用)。

CommonDialog控件,名称为CommonDialog1。

两个Label控件,名称分别为TitleWnd、FileNameWnd。

2.利用菜单编辑器建立菜单[文件],创建两个菜单项,一为[打开](名为file_open),一为[退出](名为

file_exit)

二、 在工程中加入一个模块,编写播放MP3的过程代码以备调用

三、 程序编码

1.form1中的代码:

Option Explicit Private boPause As Boolean '用于暂停/播放按钮的逻辑判断 Private Declare Function WritePrivateProfileString Lib \"kernel32\" _ Alias \"WritePrivateProfileStringA\" (ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) _ As Long '写ini文件的API函数声明 Private Sub file_exit_Click(Index As Integer) '菜单\"退出\"处理 Unload Form1 '终止,退出 End Sub Private Sub file_open_Click(Index As Integer) '功能:菜单\"打开\"处理 With OpenFileDlg '设置CommonDialog控件 .Flags = 0 '只允许打开单个文件 .MaxFileSize = 10000 '设置最大文件数 .Filter = \"(*.mp3)|*.mp3\" '只显示.mp3文件 .FileName = \"\" '设置初始文件路径名 .ShowOpen '显示对话框 End With If OpenFileDlg.FileName = \"\" Then Exit Sub '若未选中文件则退出本过程 Else '若选中文件则设置提示文字并启动MCI设备 TitleWnd.Caption = \"选中一个音乐文件[请点击播放按钮播放音乐]\" FileNameWnd.Caption = OpenFileDlg.FileName '显示音乐文件路径名 PlayMP3 MP3Player, OpenFileDlg.FileName '启动MCI设备播放音乐 MP3Player.Command = \"stop\" '通过stop、prev两命令使面板上的play按钮 MP3Player.Command = \"prev\" '有效等待用户通过鼠标单击方式发出播放命令 End If End Sub Private Sub Form_Load() '功能:载入面板初始设置 With Form1 '设置面板标题及边框样式 .Caption = \"MP3播放实例[Written by Minipuss]\" .BorderStyle = 1 End With With TitleWnd '设置提示窗口标题及前景色(GREEN) .Caption = \"目前无音乐文件被选中[请通过菜单进行选择]\" .ForeColor = RGB(0, 255, 0) End With With FileNameWnd '设置路径名窗口标题及前景色(GREEN) .Caption = \"\" .ForeColor = RGB(0, 255, 0) End With '调用写ini文件的函数在C:\\windows\\system.ini的[MCI]中添加 'mp3audio=mciqtz.drv使得系统MCI设备可MP3格式文件进行解码 '从而播放该格式音乐文件 WritePrivateProfileString \"MCI\ \"mp3audio\\"mciqtz.drv\\"C:\\windows\\system.ini\" boPause = False '初始化boPause=False End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '功能:Aplication结束前善后处理 With MP3Player 'Aplication结束时停止播放音乐并关闭MCI设备 .Command = \"stop\" .Command = \"close\" End With End Sub Private Sub MP3Player_PauseClick(Cancel As Integer) '功能:暂停按钮点击事件处理 boPause = boPause Xor True 'boPause异或1 If boPause = True Then '第一次点击暂停按钮时暂停播放音乐 MP3Player.Command = \"stop\" Else '第二次点击暂停按钮时从中止处继续播放音乐 MP3Player.Command = \"sound\" End If End Sub Private Sub MP3Player_PlayClick(Cancel As Integer) '功能:播放按钮点击事件处理 MP3Player.Command = \"sound\" '点击播放按钮时从头播放音乐 End Sub Private Sub MP3Player_PlayCompleted(Errorcode As Long) '功能:音乐播放完毕事件处理 MP3Player.Command=\"prev\" '音乐播放完毕后回到播放始点使播放按钮有效 End Sub Private Sub MP3Player_StopClick(Cancel As Integer) '功能:停止按钮点击事件处理 With MP3Player '停止播放音乐并回到播放始点使播放按钮有效 .Command = \"stop\" .Command = \"prev\" End With End Sub

2.模块中的代码:

Option Explicit Public Sub PlayMP3(TheObject As Object, ByVal FileName As String) '功能:开启一个MCI设备,播放音乐 'TheObject为对象名,这里须为MMControl对象 'FileName为音乐文件路径名 With TheObject .Command = \"close\" '预处理,关闭曾经开启的MCI设备 .DeviceType = \"mp3audio\" '指定多媒体设备类型为mp3audio .FileName = FileName '指定要播放的音乐文件路径名 .Command = \"open\" '开启一个MCI设备 .Command = \"play\" '发送命令播放音乐 End With End Sub

关于MMControl控件的详细使用方法请参考MSDN,本程序调试环境:Win98SE,Visual Basic 6.0企业

版。 (完)

【加入VIP会员】【我要投稿】【关

闭本页】

添加一个 WindowsMediaPlayer,一个CommonDialog,一个list ,一个command

Dim pa As String

Private Sub Command1_Click() Dim song As String With CommonDialog1 .FileName = \"\"

.Filter = \"*.MP3|*.mp3;*.avi;*.mid\" .Flags = 512 .ShowOpen

song = .FileName End With

If song = \"\" Then Exit Sub

a = \"\"

For i = Len(song) To 1 Step -1 k = Mid(song, i, 1)

If k = \" \" Then '多首歌的分隔符 List1.AddItem a a = \"\"

ElseIf k = \"\\\" Then '一首歌时歌名与路径的分隔符 List1.AddItem a pa = Left(song, i) Exit Sub Else

a = k & a End If Next i

End Sub

Private Sub List1_DblClick()

Me.Caption = \"我的播放器 当前播放\" & pa & List1.Text WindowsMediaPlayer1.URL = pa & List1.Text End Sub

20

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务