1

我正在使用代码:

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 播放。我的音量开着,我的困惑也开着。

4

3 回答 3

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")

我主要使用最后一个选项,这样你就可以通过音乐文件夹、图像文件夹等来组织文件,如果你移动它所在的文件夹,程序仍然可以工作。

当然也可以是音频文件本身。确保它确实是 a.mp3并且播放良好(VLC 太棒了,可以播放任何东西,尝试在 Windows 媒体或其他东西上播放以防万一)

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

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

于 2012-06-18T14:10:56.573 回答
0

新答案:

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

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

于 2014-07-21T03:24:16.787 回答
0

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

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

于 2012-06-17T02:06:01.993 回答