gpt4 book ai didi

python - 如何停止致命的Python错误: PyEval_SaveThread: NULL tstate

转载 作者:太空宇宙 更新时间:2023-11-03 20:55:58 31 4
gpt4 key购买 nike

当我插入声音并在 Pygame 中使用它时,它退出,并显示此错误:致命 Python 错误:PyEval_SaveThread:NULL tstate,我想修复它....

我在 Mac OS 上使用 python 3.7.2 和 Pycharme

-我尝试停用声音以确保它是导致错误的原因,事实上确实如此,因为当我停用时,Pygame 没有退出也没有向我显示此错误

-我尝试将声音格式从 wav 更改为 ogg

-我尝试将声音放入函数而不是事件中

-尝试在事件中加载图像

所有这些都不起作用,并且尝试了随机的事情,不知道该怎么办......

声音

    self.bulletOO = pg.mixer.Sound("Bullet.ogg")

如果 self.aimR:

elf.bullet = Bullet(self.player.rect.x + 90 - self.bulletSpeed,
self.player.rect.y + self.y)

self.bullet.image = pg.image.load("bulletP-R.png")

self.allSprites.add(self.bullet)

self.bulletGroupR.add(self.bullet)

self.bulletGroup.add(self.bullet)

self.bulletOO = pg.mixer.Sound("Bullet.ogg")

self.bulletOO.play()

我希望在游戏不退出的情况下听到声音,但它退出了,而且奇怪的是,它随机退出。我的意思是,在极少数情况下它不会退出,但如果我继续拍摄(使用声音)它会突然退出,有时它会从第一次退出......

最佳答案

造成这种情况的根本原因可能是 SDL 错误,但根据我的经验,可以通过显式设置混频器的频率来解决该问题。默认情况下,在 pygame 1 中,混频器频率设置为 22050;在 pygame 2 中它设置为 44100。在 pygame 1 中将其设置为 44100 阻止了我发生的崩溃:

    pygame.mixer.pre_init(frequency=44100)
pygame.init()
pygame.mixer.init(frequency=44100)

尚不清楚混音器是否需要这两个初始化设置,但添加这两个设置并没有什么坏处,对我来说,它停止了崩溃。

关于python - 如何停止致命的Python错误: PyEval_SaveThread: NULL tstate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56027626/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com