|
|
发表于 2006-1-23 15:06:00
|
显示全部楼层
Re:[问题]请问怎样循环放一些音乐
我用一个检测MIDI是否到结尾的API函数来做的:
先建一个TIMER和一个按钮控件,2.MID,3.MID是音乐名字。
这个程序可以无限首循环MIDI音乐:
如果加上MUSP=3是第3首,MUSP=4是第4首
If MUSP > 3 Then MUSP = 1 或 If MUSP > 4 Then MUSP = 1
再不明白到我网站。
' VB6循环播放多首MIDI音乐程序 2005.9.19 游戏之家作品
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength _
As Long, ByVal hwndCallback As Long) As Long
Dim Res As Integer, Ret As String * 1024
Private Declare Function mciGetDeviceID Lib "winmm.dll" Alias "mciGetDeviceIDA" (ByVal lpstrName As String) As Long
Private Declare Function mciGetCreatorTask Lib "winmm.dll" (ByVal wDeviceID As Long) As Long
Dim ID As Long
Dim SOUNDNAME As String
Dim MUSKEY, MUSP As Integer
Private Sub Form_Load()
Timer1.Enabled = False
MUSKEY = 1: MUSP = 1
SOUNDNAME = "2.MID"
If MUSKEY = 1 Then Res = mciSendString("play " & SOUNDNAME, Ret, 1024, 0): Timer1.Enabled = True: MUSKEY = 0
End Sub
Private Sub Command2_Click()
'停止
Timer1.Enabled = False
Res = mciSendString("close all", Ret, 1024, 0)
End Sub
Private Sub Timer1_Timer()
If MUSP = 1 Then SOUNDNAME = "2.MID"
If MUSP = 2 Then SOUNDNAME = "3.MID"
If MUSKEY = 1 Then Res = mciSendString("play " & SOUNDNAME, Ret, 1024, 0): Timer1.Enabled = True: MUSKEY = 0
ID = mciGetDeviceID(SOUNDNAME)
If mciGetCreatorTask(ID) = 0 Then MUSP = MUSP + 1: MUSKEY = 1
If MUSP > 2 Then MUSP = 1
End Sub
|
|