相互叠加播放音乐和音效 (PyGame)
Play Music And Sound Effects On Top Of Each other (PyGame)
我想知道是否可以使用 pygame 混音器在不同的声音上播放一种声音。因此,例如,我会播放安静的背景音乐,然后发生某些事情,如果有的话,会播放另一种声音。目前我使用的背景音乐是:
pygame.mixer.init()
pygame.mixer.music.load("Audio Assets//bob.wav")
pygame.mixer.music.play()
但是如果我在某种方法中播放另一种声音,背景音乐将完全停止并且不会重新开始。是否可以在彼此之上播放两个声音?
编辑:我现在想知道如何在 Tkinter 中显示和显示图像时播放声音,这是我显示图像的代码:
def one():
pone = PhotoImage(file="Image Assets//DEAD.gif")
labelone = Label(root, image=pone)
labelone.image = pone
labelone.pack(pady=70)
labelone.after(2000, labelone.destroy)
如您所见,图像显示并在 2 秒后被销毁。我如何才能在那几秒内使用频道和混音器播放音频?
编辑 2:非常简单,我只是将 pygame.mixer.Channel(0).play(pygame.mixer.Sound('sound\gun_fire.wav'), maxtime=600)
放在方法的末尾,它会按照图像显示的方式播放。
为了在音乐上播放音效(或在其他音效上播放音效),您可以使用频道。例如:
# initialize
pygame.mixer.pre_init()
pygame.mixer.init()
pygame.init()
# start playing the background music
pygame.mixer.music.load(os.path.join(os.getcwd(), 'sound', 'main_theme.wav'))
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play(loops=-1) # loop forever
然后在后面的代码中,可以通过Channels来播放音效:
# play a sound on channel 0 with a max time of 600 milliseconds
pygame.mixer.Channel(0).play(pygame.mixer.Sound('sound\gun_fire.wav'), maxtime=600)
# you can play a longer sound on another channel and they won't conflict
pygame.mixer.Channel(1).play(pygame.mixer.Sound("sound\death.wav"), maxtime=2000)
有关Channels
的更多信息
如果您想设置单个频道的音量,可以使用 set_volume() 函数:
channel.set_volume(0.5) # play at 50% volume
我想知道是否可以使用 pygame 混音器在不同的声音上播放一种声音。因此,例如,我会播放安静的背景音乐,然后发生某些事情,如果有的话,会播放另一种声音。目前我使用的背景音乐是:
pygame.mixer.init()
pygame.mixer.music.load("Audio Assets//bob.wav")
pygame.mixer.music.play()
但是如果我在某种方法中播放另一种声音,背景音乐将完全停止并且不会重新开始。是否可以在彼此之上播放两个声音?
编辑:我现在想知道如何在 Tkinter 中显示和显示图像时播放声音,这是我显示图像的代码:
def one():
pone = PhotoImage(file="Image Assets//DEAD.gif")
labelone = Label(root, image=pone)
labelone.image = pone
labelone.pack(pady=70)
labelone.after(2000, labelone.destroy)
如您所见,图像显示并在 2 秒后被销毁。我如何才能在那几秒内使用频道和混音器播放音频?
编辑 2:非常简单,我只是将 pygame.mixer.Channel(0).play(pygame.mixer.Sound('sound\gun_fire.wav'), maxtime=600)
放在方法的末尾,它会按照图像显示的方式播放。
为了在音乐上播放音效(或在其他音效上播放音效),您可以使用频道。例如:
# initialize
pygame.mixer.pre_init()
pygame.mixer.init()
pygame.init()
# start playing the background music
pygame.mixer.music.load(os.path.join(os.getcwd(), 'sound', 'main_theme.wav'))
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play(loops=-1) # loop forever
然后在后面的代码中,可以通过Channels来播放音效:
# play a sound on channel 0 with a max time of 600 milliseconds
pygame.mixer.Channel(0).play(pygame.mixer.Sound('sound\gun_fire.wav'), maxtime=600)
# you can play a longer sound on another channel and they won't conflict
pygame.mixer.Channel(1).play(pygame.mixer.Sound("sound\death.wav"), maxtime=2000)
有关Channels
的更多信息如果您想设置单个频道的音量,可以使用 set_volume() 函数:
channel.set_volume(0.5) # play at 50% volume