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()