热情软件屋

 

如何播放背景音乐(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

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio