音乐播放器代码

用VB制作简单的MP3播放器

用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)

结束功能