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

我只是在玩 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


蝴蝶不菲
浏览 324回答 1
1回答

aluckdog

谈论“为什么”——pygame.mixer.music并不是真正设计为一个前台进程:这个想法是在其他东西运行时播放背景音乐。如果用户说他们想退出游戏,如果该游戏一直运行直到当前的背景音乐曲目结束,他们通常会感到恼火。如果您想阻塞直到音乐结束,一种低效但简单的方法是使用循环检查是否完成:while pygame.mixer.music.get_busy():  time.sleep(0.1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python