Python 为什么PyGame不播放声音

Python 为什么PyGame不播放声音,python,audio,pygame,Python,Audio,Pygame,我正在用PyGame制作一个游戏,并开始添加一些声音。我添加的一个声音可以正常播放,但我添加的另一个声音只能播放几毫秒(我假设,我只听到一个简短的点击)。我试着在它之后调用time.sleep(),但我仍然收到了短时间的点击。我做了一个测试程序,但声音仍然无法播放。如有任何帮助/建议,我将不胜感激 import pygame pygame.init() JohnCena = pygame.mixer.Sound('JohnCena.mp3') def main(): JohnCena

我正在用PyGame制作一个游戏,并开始添加一些声音。我添加的一个声音可以正常播放,但我添加的另一个声音只能播放几毫秒(我假设,我只听到一个简短的点击)。我试着在它之后调用time.sleep(),但我仍然收到了短时间的点击。我做了一个测试程序,但声音仍然无法播放。如有任何帮助/建议,我将不胜感激

import pygame
pygame.init()

JohnCena = pygame.mixer.Sound('JohnCena.mp3')

def main():
    JohnCena.play(0,0,0)
    raw_input()

main()
  • Pygame似乎只支持

  • 也请尝试此副本:

  • 如果您仍然被卡住,根据我在中找到的(和使用的),您可能需要在加载声音之前添加
    pygame.mixer.init()


  • 首先,mp3在pygame中不是很好用。 你的代码应该工作得很好。 一个问题是你在做什么

    loops = 0
    
    在主要功能中

    您应该将文件扩展名更改为*.ogg(因为ogg文件工作得很好),并尝试以下代码:

    import pygame
    pygame.init()
    music = pygame.mixer.music.load('file.ogg')
    def main():
        pygame.music.play(loops=-1, start=0)
        raw_input()
    main()
    
    你唯一需要改变的就是

    pygame.mixer.music.load('file.ogg')
    
    线路。 如果将文件扩展名更改为其他文件,请小心,
    因为pygame只加载未压缩的*.wav文件和*.ogg文件

    另一个声音是OGG文件吗?MP3在Pygame中工作不太好。
    Pygame.mixer.init()
    在这里是不必要的,因为OP的程序有
    Pygame.init()
    ,它初始化了所有Pygame模块。黑猩猩的例子也有,这很奇怪,但我认为这背后有一个原因。这不太可能是op出现问题的原因,但是如果1和2失败,那么值得一试。我尝试在程序Audacity中将音频导出为wav而不是mp3,但仍然只能听到咔嗒声。我试着用wav格式的有声圣经中的一些声音,但它们也不起作用。但是,由于某种原因,在我的程序中,一个声音就可以正常播放…?
    pygame.init()
    并不总是有效,但是您可以通过使用模块的
    pygame.init()
    init()
    函数(如
    display
    mixer
    )来解决这个问题