如何播放背景音乐(MIDI)
编号:QA001306
建立日期: 1999年7月8日 最后修改日期:1999年7月8日
所属类别:
Sam:
VB 6.0 Sp2
Windows 98 & NT
如何播放背景音乐(MIDI)?我使用的API方法无效不知为何。
声明:
Declare Function MCISendString& Lib "MMSYSTEM" (ByVal LPSTRCOMMAND$,
ByVal LPSTRRETURNSTR As Any, ByVal WRETURNLEN%, ByVal HCALLBACK%)
开始播放:
R% = MCISendString&("OPEN EXAMPLE.MID TYPE SEQUENCER ALIAS NN", 0&, 0, 0)
R% = MCISendString&("PLAY NN FROM 0", 0&, 0, 0)
R% = MCISendString&("CLOSE ANIMATION", 0&, 0, 0)
停止:
R% = MCISendString&("OPEN EXAMPLE.MID TYPE SEQUENCER ALIAS NN", 0&, 0, 0)
R% = MCISendString&("STOP NN", 0&, 0, 0)
R% = MCISendString&("CLOSE ANIMATION", 0&, 0, 0)
其中EXAMPLE.MID 为播放的文件,NN为自定义名称标志。
以上正确吗?有其它更好的方式吗?Thinks!
回答:
你使用的是VB 6.0,可你调用的API函数却都是16位的,当然不会成功。正确的方法如下:
实现加入如下声明:
Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _
hwndCallback As Long) As Long
' 如果你想播放其它文件,修改这里
Private Const Song As String = "C:\Win95\Media\Canyon.MID"
播放时使用如下命令:
mciSendString "open " & Song & " type sequencer alias canyon", _
0&, 0, 0
mciSendString "play canyon FROM 0", 0&, 0, 0
停止时使用:
mciSendString "close canyon", 0&, 0, 0
此问题由李海回答。
| |
|
|
| |
|
|