如何在背景vb6中播放音乐?
How to Play a music in the background 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)
它在游戏开始时播放音乐,但在播放另一种声音时音乐停止
我需要在某个时候播放声音,谢谢
查看 this link。它适用于 VB.Net,但看起来您唯一需要更改的是按钮单击事件处理程序。 mciSendString 是 MCI 设备 (winmm.dll) 的 WinAPI 的一部分,它在 VB6 中同样易于使用。
您可以尝试使用 windows 媒体播放器控件并将其设置为循环播放。由于它的行为类似于外部媒体播放器(在某种程度上),它将音频混合到 directshow 中,因此它不会阻止其他声音的播放,反之亦然。
你好,我用 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)
查看 this link。它适用于 VB.Net,但看起来您唯一需要更改的是按钮单击事件处理程序。 mciSendString 是 MCI 设备 (winmm.dll) 的 WinAPI 的一部分,它在 VB6 中同样易于使用。
您可以尝试使用 windows 媒体播放器控件并将其设置为循环播放。由于它的行为类似于外部媒体播放器(在某种程度上),它将音频混合到 directshow 中,因此它不会阻止其他声音的播放,反之亦然。