簡體   English   中英

我可以將列表傳遞給PyGame音樂嗎?

[英]Can I pass a list to PyGame Music?

贏得10 / 64bit / 3.5:

我想將一個變量中的.mp3列表( mp3Fin )傳遞給pygame.mixer.music.load() 有沒有辦法做到這一點? 當我分別加載時,PyGame確實可以工作。 在過去的幾周里,我一直只是在學習編程/ python,並且是stackoverflow的新手,所以如果遺漏任何內容,請對不起。

最后編輯這是應該正確格式化或縮進的最新代碼。 它仍然出現錯誤,但錯誤已更改為與“ Rwops”相關的內容。 只發現了一些有關Rwops的鏈接。 將刪除先前的代碼,因為我認為它們不再有用。

碼:

if catChow == cat1[0]:
        print("Welcome to SoCha's music player.")   
        def get_files(directories):
            mp3Pre = []
            for root, directories, files in os.walk(directories):
                for filename in files:
                #Joins the two strings in order to form the full filepath.
                    filepath = os.path.join(root, filename)
                    mp3Pre.append(filepath) #Adds to the mp3PreParse variable above.
            return mp3Pre
        mp3Post = get_files("C:\\Users\\SoCha\\Music")
        pygame.mixer.init()
        pygame.mixer.music.load([s for s in mp3Post if s.endswith(".mp3")])
        pygame.mixer.music.play()

Rwops錯誤:

Welcome to SoCha's music player.
Traceback (most recent call last):
  File "SoChaOS.2.0.py", line 38, in <module>
    pygame.mixer.music.load([s for s in mp3Post if s.endswith(".mp3")])
pygame.error: Couldn't read from RWops

***Repl Closed***

這是我對此原始帖子所做的最后修改。

mp3fin是一個字符串。 為什么要索引它? 當您調用split()它返回一個要打印的數組,然后將其丟棄。

在最后一行pygame.mixer.music.load(mp3Fin[1])您要拼接字符串並采用第二個字符,即“:”。

您可能應該只調用pygame.mixer.music.load(mp3Fin)


我想從變量(mp3Fin)中將.mp3列表傳遞給pygame.mixer.music.load()。

mp3Fin不是一個列表。 mp3Post是在目錄中找到的文件列表。 for循環迭代時,每個文件都在mp3Fin中。 嘗試:

for mp3Fin in mp3Post:
    if mp3Fin.endswith(".mp3"):
        pygame.mixer.init()
        pygame.mixer.music.load(mp3Fin)

您可以嘗試使用以下方法傳遞列表以load購買:

mp3Post = get_files("C:\\Users\\SoCha\\Music")
pygame.mixer.init()
pygame.mixer.music.load([s for s in mp3Post if s.endswith(".mp3")])

請記住, mp3Fin.split()不會就位修改mp3Finmp3Fin保持字符串!

因此,當您到達第41 mp3Fin[1]mp3Fin[1]將字符放在mp3Fin位置1 mp3Fin 這就是錯誤中的“:”來自C:/...

嘗試直接發送字符串

pygame.mixer.music.load(mp3Fin)

必須小心使用這些功能!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM