[英]PyGame MP3 won't play
我正在使用代码:
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 播放。 我的音量开着,我的困惑也开着。
您确定要在正确的目录中查找它们吗?
尝试指定完整路径,即"c:/programs/mygame/music/8bit-jingle-twist.mp3"
很奇怪,我只是复制了您的代码并将音频文件更改为我拥有的文件,并且效果很好。
因此,我认为这与文件本身有关。
可能正如 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 上运行了代码,现在运行良好)
新答案:
如果您将 mp3 文件保存为“filename.mp3”,并且您自己写下了 .mp3 文件扩展名,那么 pygame 的 pygame.mixer.music.load() 函数中的文件名必须写为“filename.mp3.mp3” ,因为 python 希望您添加 .mp3。 如果您手动将其保存为文件名,则有时 .mp3 已包含在文件名中。
因此,试试这个: pygame.mixer.music.load('filename.mp3.mp3')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.