Pygame 声音不断重复
Pygame sound keeps repeating
我想在比赛结束时输掉比赛时播放声音。以前下面的代码适用于 Python 3.5,但它会在播放声音后中止。我升级到 python 3.6,现在它一直在重复。我怎样才能把声音播放到最后?
import pygame
def sound():
pygame.mixer.init()
sound1 = pygame.mixer.Sound('womp.wav')
while True:
sound1.play(0)
return
while True
是一个死循环:
while True:
sound1.play(0)
声音会一直播放。
使用get_length()
得到声音的长度,以秒为单位。等到声音结束:
(pygame.time.wait()
的参数以毫秒为单位)
import pygame
pygame.mixer.init()
my_sound = pygame.mixer.Sound('womp.wav')
my_sound.play(0)
pygame.time.wait(int(my_sound.get_length() * 1000))
或者,您可以测试 pygame.mixer.get_busy()
是否混合了任何声音。 运行一个循环只要混一个音:
import pygame
pygame.init()
pygame.mixer.init()
my_sound = pygame.mixer.Sound('womp.wav')
my_sound.play(0)
clock = pygame.time.Clock()
while pygame.mixer.get_busy():
clock.tick(10)
pygame.event.poll()
我想在比赛结束时输掉比赛时播放声音。以前下面的代码适用于 Python 3.5,但它会在播放声音后中止。我升级到 python 3.6,现在它一直在重复。我怎样才能把声音播放到最后?
import pygame
def sound():
pygame.mixer.init()
sound1 = pygame.mixer.Sound('womp.wav')
while True:
sound1.play(0)
return
while True
是一个死循环:
while True: sound1.play(0)
声音会一直播放。
使用get_length()
得到声音的长度,以秒为单位。等到声音结束:
(pygame.time.wait()
的参数以毫秒为单位)
import pygame
pygame.mixer.init()
my_sound = pygame.mixer.Sound('womp.wav')
my_sound.play(0)
pygame.time.wait(int(my_sound.get_length() * 1000))
或者,您可以测试 pygame.mixer.get_busy()
是否混合了任何声音。 运行一个循环只要混一个音:
import pygame
pygame.init()
pygame.mixer.init()
my_sound = pygame.mixer.Sound('womp.wav')
my_sound.play(0)
clock = pygame.time.Clock()
while pygame.mixer.get_busy():
clock.tick(10)
pygame.event.poll()