Pygame错误:混音器系统未初始化

时间:2014-03-06 14:41:32

标签: python audio pygame

我刚刚开始了一个小小的游戏项目,我试图让它在每次发射子弹时播放声音,但我一直都会遇到同样的错误:

pygame.error:调音台系统未初始化

我不知道我做错了什么,这是我的代码:

import pygame, sys
from pygame.locals import *

theClock = pygame.time.Clock()

sound = pygame.mixer.Sound("bullet.mp3")

...

if event.type == KEYDOWN:
            if event.key == K_SPACE and shot_count == 0:
                sound.play()
                shot_y = h-50
                shot_x = x
            elif event.type == K_SPACE and shot_count == 1:
                shot_y_2 = h-50
                shot_x_2 = x
            print(h, ' ', shot_y, shot_count)
        if event.type == KEYUP:
            if event.key == K_SPACE and shot_count == 0:
                resetShot = 0 
            elif event.type == K_SPACE and shot_count == 1:
                resetShot = 0

5 个答案:

答案 0 :(得分:8)

在使用调音台/声音对象之前,您需要pygame.init()

根据documentation,你应该使用OGG或WAV声音文件。

答案 1 :(得分:1)

我在两周之前制作了俄罗斯方块游戏,我遇到了同样的问题! 我所做的是在播放声音之前插入它并且它有效。

pygame.mixer.init(44100, -16,2,2048)

亲自试一试,看看它是否有效!我希望有帮助

答案 2 :(得分:0)

我正在查看here,发现pygame仅加载OGG和未压缩的WAV文件。 另一个问题是您忘记初始化pygame.mixer模块。

pygame.mixer.init()

是初始化pygame.mixer模块的最简单方法。 有关更多信息,请转到上一个链接。

答案 3 :(得分:0)

足够了

import pygame as pg
from pygame import mixer

pg.init()

#...
mixer.music.load('sounds/bgsound.mp3')

mixer.music.play(-1)

答案 4 :(得分:0)

在Linux系统上使用pycharm时,我在同一项目上遇到了相同的错误。

简单的解决方法是在python shell或IDLE中运行sript(大致相同)。

如果您是像我这样的Linux用户(我使用Ubuntu),只需在终端中打开包含脚本的文件夹,然后使用python运行脚本即可,

python3 Space_Invaders.py

它应该可以正常运行。我尝试运行代码而不使用python IDLE初始化混合器,并且在那里也没有遇到错误。