首页 > 解决方案 > 为什么 pygame.event.wait 在 20 秒左右后停止音乐播放

问题描述

所以......我使用这个代码:

import pygame
pygame.mixer.init()
pygame.init()
pygame.mixer.music.load('computersong.mp3')
pygame.mixer.music.play()
pygame.event.wait()

但是音乐播放了二十秒然后停止,我做错了什么?

标签: pythonpygamemp3

解决方案


pygame.event.wait()从事件队列中返回单个事件,但它不会等到音乐播放完毕。
您必须使用pygame.time.wait并等待特定的时间:

pygame.time.wait(5000) # wait 5 seconds

另一种选择是使用pygame.mixer.music.get_busy()and 循环等待直到音乐结束:

pygame.mixer.music.play()

clock = pygame.time.Clock()
while pygame.mixer.music.get_busy():
    pygame.event.poll()
    clock.tick(10)

推荐阅读