2012-06-17 39 views
0

我正在使用的代码:pygame的MP3不会玩

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播放。我的卷,因为我的困惑。

+0

刚才试了;没有变化 –

+0

我可能会建议使用普通的调音台。可以播放音乐。它也可以工作。另外考虑玩pygame.mixer.pre_init。 – imallett

+0

该程序是否引发任何异常,或者只是没有播放声音? –

回答

0

你确定你正在寻找他们在正确的目录?

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

+0

它没有工作,但无论如何感谢。只是黑色的窗口,但是没有声音......静音尚客... –

0

很奇怪,我简单地复制你的代码,只是改变了音频文件那些我已经和它的工作完美的罚款。

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

它可能是休·博斯韦尔指出的文件路径。在这种情况下,你可以做三件事情:

使用整个文件路径:

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

使用没有文件路径(然后,文件必须在同一文件夹中的程序)

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

或者使用一个文件夹跳转,其中您的文件夹位于与程序相同的文件夹内。 因此,例如,您在“我的文档”中有您的程序,然后在“我的文档”中创建另一个名为“Pygame的音乐”的文件夹。然后代码将是:

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

我大多使用的最后一个选项,这样就可以保持组织您的文件具有对音乐的文件夹,图片文件夹等,该方案将仍然有效如果你移动了它所在的文件夹。

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

另外,如果使用Windows 7操作系统,请尝试将其作为管理员,它可能会解决这个问题。

(我跑在Windows XP的代码,它只是现在工作得很好)

+0

我尝试了所有3点寻路的选择,我_may_发现的问题;在Windows上,是'C:\路径\ file.mp3'一样'C:/路径/ file.mp3'?另外,我如何作为管理员运行python脚本?我已经习惯了须藤... –

+0

我用的是'C:/路径/ file.mp3'或'C:\\路径\\ file.mp3'。因为'\'会导致问题。至于以管理员身份运行,我不确定。我认为那将是另一个问题,并且可能已经被问到,请环顾四周,看看你能找到什么。 – hammythepig

+0

我使用正斜杠。我会尽快给你管理部分... –

0

从Pygame的音乐页: “要知道,MP3支持仅限于在某些系统不支持的格式可程序崩溃。例如Debian Linux,考虑使用OGG代替。“
尝试使用在线转换器,如http://media.io/

+0

但mp3应该可以在win7-64上运行,对吧? –

0

新的答案:

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

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