Python 即使pygame已初始化;“视频系统未初始化”;被扔
以下代码位引发错误:Python 即使pygame已初始化;“视频系统未初始化”;被扔,python,pygame,Python,Pygame,以下代码位引发错误: while True: event = pygame.event.wait() if (event.type == ENDSONG): queue_song() 这就是它的内容: File "pygametest.py", line 22, in <module> event = pygame.event.wait() pygame.error: video system not initialized 即
while True:
event = pygame.event.wait()
if (event.type == ENDSONG):
queue_song()
这就是它的内容:
File "pygametest.py", line 22, in <module>
event = pygame.event.wait()
pygame.error: video system not initialized
即使初始化Pygame,也需要调用
display.set_mode
以避免此错误:
pygame.init()
pygame.display.set_mode((width, height))
# rest of the code
这是因为事件队列需要将视频模式设置为正常工作。从:
输入队列严重依赖于pygame显示模块。如果显示尚未初始化且未设置视频模式,则事件队列将无法真正工作
显示您调用
pygame.init()
的位置,它很可能没有被调用谢谢,这很有效。我只使用pygame的声音播放/流媒体部分,但我需要能够抓住结尾。使用set_endevent()时是否有其他方法捕获抛出的事件?或者我需要使用pygame.event.wait(),这是野兽的本性吗?@ballofpopculture而不是。如果为True:
,则可以使用该函数作为循环的条件。因此,您不需要任何事件就可以知道音乐何时结束。唯一的问题是get_busy()只在没有播放音乐时返回false。即使当前播放的歌曲成为队列歌曲,它也会返回true。有很多方法可以解决这个问题,但是在当前歌曲播放后排队播放歌曲是计划的一部分,尽管有一些方法不使用endevent()或get_busy()
pygame.init()
pygame.display.set_mode((width, height))
# rest of the code