当我插入声音并在Pygame中使用它时,它会退出,并向我显示此错误:致命的Python错误:PyEval_SaveThread:NULL tstate,我想修复它。...
我在带有Pycharme的Mac OS上使用python 3.7.2
-我尝试停用声音,以确保它是导致错误的声音,而实际上是因为当我停用声音时,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()
我希望听到声音而游戏不会退出,但是它退出了,而且很奇怪,它随机退出了。我的意思是,在极少数情况下它不会消失,但是如果我继续拍摄(使用声音),它会突然消失,有时它会从第一次消失...
答案 0 :(得分:0)
尝试以下代码:
pygame.mixer.music.load('Bullet.ogg')
pygame.mixer.music.play()
并在此处查看文档:{{3}}
答案 1 :(得分:0)
造成此问题的根本原因可能是SDL错误,但以我的经验,可以通过显式设置混频器的频率来解决它。默认情况下,在pygame 1中,混频器频率设置为22050;在pygame 2中将其设置为44100。在pygame 1中将其设置为44100阻止了我的崩溃:
pygame.mixer.pre_init(frequency=44100)
pygame.init()
pygame.mixer.init(frequency=44100)
尚不清楚是否需要混合器的这两个初始化设置,但同时添加这两个设置并没有什么坏处,对我而言,它停止了崩溃。