【问题标题】:Pygame sound delay - Not related to buffer/samplingPygame 声音延迟 - 与缓冲区/采样无关
【发布时间】:2016-09-19 16:13:58
【问题描述】:

每当用户将鼠标悬停在按钮上时,我都会尝试在我的小游戏中播放简单的 wav 文件,播放一点点击声音(实际按下按钮时也是如此)。有了这个,我遇到了每个没有正确初始化混音器的人都会遇到的一般滞后。但是,当我正确初始化它时,它仍然有 0.5 秒的延迟。 我按如下方式初始化我的游戏:

pygame.mixer.pre_init(11025, -16, 2, 512)
pygame.mixer.init()
pygame.init()

我用不同的初始化设置摆弄(这是一个词吗?),但没有成功。 wav 文件清晰,音频立即从文件开头开始。所以我的问题是:有没有其他方法可以弥补在 pygame 中播放声音时出现的延迟?

【问题讨论】:

  • 您确定这是导致问题的原因吗,因为当我在突围游戏中使用声音时没有延迟。这是我使用的代码pygame.mixer.pre_init(44100, -16, 2, 2048) # setup mixer to avoid sound lag pygame.init() #initialize pygame pygame.mixer.init(44100, -16, 2, 2048)
  • 不,我不是,我只是在另一个文件中测试了它,隔离了声音播放,它在那里工作。我想我在错误的地方初始化了东西。无论如何感谢您的回答!

标签: python pygame


【解决方案1】:

答案:

我结束了使用 pre_init 设置启动混音器,然后退出混音器,然后再次启动它:

pygame.mixer.pre_init(22050, -16, 2, 1024)
pygame.init()
pygame.mixer.quit()
pygame.mixer.init(22050, -16, 2, 1024)

现在它工作得很好。

【讨论】:

    【解决方案2】:

    就我而言,我发现在混音器启动之前退出它就足够了(即使它之前从未启动过):

    pygame.mixer.quit()
    pygame.mixer.init(44100, -16, 2, 1024)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      相关资源
      最近更新 更多