我正在使用代码:
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.mp3
和timeless-mountains.mp3
都存在且可以由VLC播放。我的卷是,因为我的困惑。
答案 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)
我遇到相同的问题:
绝对路径:不起作用
相对路径(在相同的代码目录中):有效