为何pygame在退出前需要time.sleep播放声音?

时间:2019-02-08 21:13:48

标签: python time pygame

我只是在玩Python播放MP3文件并碰到pygame

我可以播放音乐了,但是以某种方式我需要添加time.sleep(SECONDS)才能播放音乐,否则当我在终端机中运行时它会立即存在

是有原因还是我做错了?

import pygame, time
from pygame.locals import *

pygame.mixer.pre_init(44100, 16, 2, 4096)
pygame.init()
pygame.mixer.music.load("path/to/mp3/file")
pygame.mixer.music.play()
time.sleep(32)

我并没有尝试创建游戏或任何东西,正如我提到的,我只是在玩Python

1 个答案:

答案 0 :(得分:2)

说“为什么”-pygame.mixer.music并不是一个前台程序:其想法是,这是背景音乐在其他运行时播放。如果用户说他们想退出游戏,那么如果该游戏一直运行到当前背景音乐轨结束,他们通常会感到恼火。


如果您想在音乐播放完成之前一直阻塞,那么一种低效但简单的方法是通过循环检查完成情况:

while pygame.mixer.music.get_busy():
  time.sleep(0.1)