Option Explicit 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 LongPrivate Sub Command1_Click() mciSendString "play c:\Aria.wav", 0&, 0, 0& End SubPrivate Sub Form_Load() Dim CmdStr As String, ReturnVal As Long CmdStr$ = "play c:\Amphora.wav" ReturnVal& = mciSendString(CmdStr$, 0&, 0, 0&) End SubPrivate Sub Form_Unload(Cancel As Integer) mciSendString "stop c:\Aria.wav", 0&, 0, 0& mciSendString "stop c:\Amphora.wav", 0&, 0, 0& End Sub
mciSendString能播放多种音乐格式,包括MP3。循环播出比较麻烦,我找到的例子是加一个时间控件来判断,当播放结束即从头播放,下面是一个例子:Option ExplicitPrivate 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 LongPrivate Sub Command1_Click() mciSendString "open c:\horses.mp3 alias myMP3", vbNullString, 0, 0 mciSendString "play myMP3", vbNullString, 0, 0 End SubPrivate Sub Command2_Click() mciSendString "close myMP3", vbNullString, 0, 0 End SubPrivate Sub Form_Load() Timer1.Interval = 500 End SubPrivate Sub Form_Unload(Cancel As Integer) mciSendString "close myMP3", vbNullString, 0, 0 End SubPrivate Sub Timer1_Timer() Dim S As String S = String(256, Chr(0)) mciSendString "status myMP3 mode", S, Len(S), 0 If Left(S, 7) = "stopped" Then mciSendString "seek myMP3 to start", vbNullString, 0, 0 mciSendString "play myMP3", vbNullString, 0, 0 End If End Sub
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 LongPrivate Sub Command1_Click()
mciSendString "play c:\Aria.wav", 0&, 0, 0&
End SubPrivate Sub Form_Load()
Dim CmdStr As String, ReturnVal As Long
CmdStr$ = "play c:\Amphora.wav"
ReturnVal& = mciSendString(CmdStr$, 0&, 0, 0&)
End SubPrivate Sub Form_Unload(Cancel As Integer)
mciSendString "stop c:\Aria.wav", 0&, 0, 0&
mciSendString "stop c:\Amphora.wav", 0&, 0, 0&
End Sub
mciSendString "open c:\horses.mp3 alias myMP3", vbNullString, 0, 0
mciSendString "play myMP3", vbNullString, 0, 0
End SubPrivate Sub Command2_Click()
mciSendString "close myMP3", vbNullString, 0, 0
End SubPrivate Sub Form_Load()
Timer1.Interval = 500
End SubPrivate Sub Form_Unload(Cancel As Integer)
mciSendString "close myMP3", vbNullString, 0, 0
End SubPrivate Sub Timer1_Timer()
Dim S As String
S = String(256, Chr(0))
mciSendString "status myMP3 mode", S, Len(S), 0
If Left(S, 7) = "stopped" Then
mciSendString "seek myMP3 to start", vbNullString, 0, 0
mciSendString "play myMP3", vbNullString, 0, 0
End If
End Sub