SNDPLAYSOUND好象做不到,你可以用mciSendString。

解决方案 »

  1.   

    这样吧,背景音乐用midi,按钮那个用wave。
      

  2.   

    mciSendString怎么用我是用VB的呀
      

  3.   

    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
      

  4.   

    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
      

  5.   

    不行!播放MP3系统出错,不是程序出错,我电脑能放MP3
      

  6.   

    那就是你的Windows里没有MP3解码器了。