代码之家  ›  专栏  ›  技术社区  ›  Tsuna

为什么pygame需要时间。在退出前先睡一觉播放声音?

  •  1
  • Tsuna  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  4
  •   Charles Duffy    7 年前

    向“为什么”说话-- pygame.mixer.music 并不是真正设计成一个前台进程:其想法是,这是一个背景音乐播放,而其他运行。如果用户说他们想退出游戏,如果游戏一直运行到当前背景音乐曲目结束,他们通常会感到恼火。


    如果您想在音乐结束前停止播放,一种低效但简单的方法是使用循环检查音乐是否完成:

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