音乐播放器代码
用VB制作一个简单的MP3播放器,利用API函数【mciSendString】,可以轻松播放MP3音乐文件。下面的程序实现了MP3播放的大部分常规操作。稍加修改就可以轻松做出100KB大小的MP3播放器。
启动VB程序,在窗体上放六个命令按钮,三个标签,一个通用对话框,一个进度条,一个状态栏,一个定时器。窗册的布局请参考附图。按钮“打开MP3文件”用于打开对话框以选择MP3文件,其他五个按钮普鲁播放、暂停、停止播放、后退和后退。Label1用于表示歌曲的当前时间;Label2放在时间条的最左侧,Caption属性为“00:00”;标签3位于时间条的右侧,表示歌曲的总长度。现在你可以写代码了。首先,在窗体的“一般声明”部分声明该函数。
私有声明函数mciSendString Lib“winmm . dll”别名“mciSendStringA”(ByVal lpstrCommand为String,ByVal lpstrRetumString为String,ByVal uReturnLength为Long,ByVal hwndCallback为Long)为Long
将mfn标注为字符串
以下是每个对象的代码:
私有子窗体_load()
mfn = " "
玩吧。启用=假
暂停。启用=假
停止播放。启用=假
回来了。启用=假
普雷。启用=假
定时器1。启用=假
定时器1。间隔= 500
末端接头
私有子open_Click()
出错时转到错误
使用CommonDialog1
。CancelError = True
。Filter = " Music file | * .mp3*.wav*.中"
。Flags = cdlOFNNoChangeDir和cdlOFNPathMustExist
。动作= 1
Stopplay_Click '停止按钮也可以初始化设备。
Mfn =。' FileName '该程序中的文件名不能有空格。
表单1。标题=。文件名
玩吧。启用=真
以…结尾
播放_点击
出口接头
错误:
末端接头
私人子游戏_点击()
出错时继续下一步
Dim t一样长
t = mciSendString("open " + mfn,0 & amp,0,0)' open '后面的空格不能丢失。
Dim ret As String * 128
t = mciSendString(" status "+MFN+" length ",ret,128,0)
显示歌曲的总长度
ret = Left(ret,8)
如果ret & lt& gt”“那么
ProgressBar1.min = 0
ProgressBar1。Max = Val(ret)
标签3。Caption = Gettime(Val(ret))
如果…就会结束
玩吧。启用=假
暂停。启用=真
停止播放。启用=真
回来了。启用=真
普雷。启用=真
t = mciSendString(" status "+MFN+" mode ",ret,128,0)
获取设备的当前状态,是播放还是暂停等。
ret = Left(ret,8)
StatusBar1。面板(1)。文本= ret
在状态栏中显示播放状态
t = mciSendString(" play "+MFN+" form "+Str(progress bar 1。值),0 & amp, 0, 0)
开始玩吧
定时器1。启用=真
末端接头
私有Sub pause_Click()
t% = mciSendString("pause " + mfn,0 & amp, 0, 0)
发布暂停令
玩吧。启用=真
暂停。启用=假
停止播放。启用=真
回来了。启用=假
普雷。启用=假
末端接头
私有Sub stopplay_Click()
t% = mciSendString("stop " + mfn,0 & amp, 0, 0)
t% = mciSendString("close " + mfn,0 & amp, 0, 0)
别玩了
玩吧。启用=真
暂停。启用=假
停止播放。启用=假
回来了。启用=假
普雷。启用=假
末端接头
私有Sub back_Click()
t % = mciSendString(" play "+MFN+" from "+Str(progress bar 1。值- (ProgressBar1。Max \ 10))、0 & amp0,0)'往后跳一点,再放一遍。
末端接头
Private Sub prew_Click()
t % = mciSendString(" play "+MFN+" from "+Stri(progress bar 1。值+ (ProgressBar1。Max \ 10))、0 & amp0,0)'向前跳一小段再玩。
末端接头
私有子定时器1_Timer()
Dim t一样长
Dim ret As String * 128
t = mciSendString(" status "+MFN+" position ",ret,0,0)
获取当前播放位置。
ret = Left(ret,8)
ProgressBar1。值= Val(ret)
Label1。Caption = Gettime(Val(ret))
显示当前时间歌曲。
如果ProgressBar1。值= ProgressBar1。那就麦克斯
停止播放_点击
如果…就会结束
t = mciSendString(" status "+MFN+" mode ",ret,128,0)
ret = Left(ret,8)
StatusBar1。面板(1)。文本= ret
末端接头
私有子窗体_Unload(Cacel为整数)
t% = mciSendString("stop " + mfn,0 & amp, 0, 0)
t% = mciSendString("close " + mfn,0 & amp, 0, 0)
末端接头
私有函数Gettime(位置与字符串一样长)
该函数的作用是将长整数表示的时间转换成电子钟“* * * *”
最小尺寸,秒
最小值=位置/ 1000
最小值=最小值/ 60
sec = min - Int(min)
min = Int(min)
秒= 60 *秒/ 100
sec = Int(sec * 100)
Gettime = Str(min) + ":" + Str(sec)
结束功能