如何在后台播放音乐vb6?

时间:2015-02-08 17:28:10

标签: audio vb6

我用vb6做一个小游戏,我需要在一段时间内播放2个声音 我使用这段代码

 Private Declare Function PlaySoundMem Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As Long, ByVal hModule As Long, ByVal dwFlags As Long) As Long
    Const SND_ASYNC = &H1, SND_MEMORY = &H4, SND_NODEFAULT = &H2, SND_NOSTOP = &H1, SND_NOWAIT = &H2000
Dim Sound() As Byte
Dim x As Integer

Private Sub Form_Load()
On Error Resume Next
Sound = LoadResData("music", "CUSTOM")
Call PlaySoundMem(VarPtr(Sound(0)), 0, SND_NOWAIT Or SND_NODEFAULT Or SND_MEMORY Or SND_ASYNC Or SND_NOSTOP)
DoEvents

End Sub

Private Sub snd()
If nrd.Text = 1 Then
x = 1
snd_hero
ElseIf nrd.Text = 2 Then
x = 2
snd_hero
ElseIf nrd.Text = 3 Then
x = 3
snd_hero
ElseIf nrd.Text = 4 Then
x = 4
snd_hero
ElseIf nrd.Text = 5 Then
x = 5
snd_hero
ElseIf nrd.Text = 6 Then
x = 6
snd_hero
End If
End Sub

Private Sub snd_hero()
On Error Resume Next
Sound = LoadResData(x, "CUSTOM")
Call PlaySoundMem(VarPtr(Sound(0)), 0, SND_NOWAIT Or SND_NODEFAULT Or SND_MEMORY Or SND_ASYNC Or SND_NOSTOP)
DoEvents
ReDim Sound(0)
它的播放音乐在游戏开始时播放,但音乐停止播放另一种声音 我需要在某些时候播放声音我感谢

2 个答案:

答案 0 :(得分:0)

检查this link。它适用于VB.Net,但看起来你唯一需要改变的是按钮点击事件处理程序。 mciSendString是WinAPI for MCI设备(winmm.dll)的一部分,它在VB6中同样易于使用。

答案 1 :(得分:0)

您可以尝试使用Windows Media Player控件并将其设置为循环播放。由于它的行为类似于外部媒体播放器(在某种程度上),它将音频混合到directshow中,因此它不会阻止其他声音播放,反之亦然。