2012-06-17 44 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')