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