PyGame MP3无法播放

时间:2012-06-17 02:02:58

标签: python mp3 pygame

我正在使用代码:

import pygame, sys, datetime
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((640, 480))
screen.fill((0, 0, 0, 255))
pygame.display.set_caption("TESTIFICATE")
if datetime.date.today().month == 12 and datetime.date.today().day == 25:
    pygame.mixer.music.load("8bit-jingle-twist.mp3")
    print("Merry Christmas!")
else:
    pygame.mixer.music.load("timeless-mountains.mp3")
print("Loading Music...")
pygame.mixer.music.play(-1, 0.0)
print("Playing Background Music...")
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

8bit-jingle-twist.mp3timeless-mountains.mp3都存在且可以由VLC播放。我的卷,因为我的困惑。

4 个答案:

答案 0 :(得分:0)

您确定要在正确的目录中查找它们吗?

尝试指定完整路径,即 "c:/programs/mygame/music/8bit-jingle-twist.mp3"

答案 1 :(得分:0)

非常奇怪,我只是简单地复制了你的代码,只是将音频文件更改为我所拥有的代码,并且工作得非常好。

因此我认为它与文件本身有关。

可能正如Hugh Bothwell指出的那样,文件路径。在这种情况下,您可以做三件事:

使用整个文件路径:

pygame.mixer.music.load("C:/blah/blah/blah/8bit-jingle-twist.mp3")

不使用文件路径(该文件必须与程序位于同一文件夹中)

pygame.mixer.music.load("8bit-jingle-twist.mp3")

或者使用一个文件夹跳转,您在程序所在的文件夹中有一个文件夹。 例如,您将程序放在“我的文档”中,然后在“我的文档”中创建另一个名为“Music for Pygame”的文件夹。那么代码就是:

pygame.mixer.music.load("Music for Pygame/8bit-jingle-twist.mp3")

我主要使用最后一个选项,这样你就可以通过设置音乐文件夹,图像文件夹等来保持文件的整理,如果移动了文件夹,程序仍然有用。

当然它也可能是音频文件本身。确保它真的是.mp3并且它可以正常播放(VLC太棒了,可以播放任何内容,尝试在Windows媒体上播放或以防万一)

此外,如果使用Windows 7操作系统,请尝试以管理员身份运行它,它可能会解决问题。

(我在Windows XP上运行代码,它现在运行良好)

答案 2 :(得分:0)

新答案:

如果您将mp3文件保存为'filename.mp3',并且自己写下了.mp3文件扩展名,则pygame的pygame.mixer.music.load()函数中的文件名必须写为'filename.mp3 .mp3',因为python希望你添加.mp3。如果您手动将其保存为文件名,有时.mp3已包含在文件名中。

因此,试试这个: pygame.mixer.music.load('filename.mp3.mp3')

答案 3 :(得分:-1)

我遇到相同的问题:

  • 绝对路径:不起作用

  • 相对路径(在相同的代码目录中):有效