我能把列表传给PyGame Music吗?

2024-10-03 19:31:21 发布

您现在位置:Python中文网/ 问答频道 /正文

赢10/64bit/3.5:

我想把.mp3的列表从一个变量(mp3Fin)传递到游戏机。混音器。音乐.load()。有办法吗?PyGame在我单独加载时确实可以工作。我最近几周才开始学习编程/python,对stackoverflow还是个新手,如果我遗漏了什么,很抱歉。在

上次编辑这里是最新的代码,格式正确/缩进。它仍然收到一个错误,但错误已更改为与“Rwops”相关的内容。在bing上只找到了一些关于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错误:

^{pr2}$

这是我对这篇原创文章的最后一次编辑。在


Tags: theto代码infor错误musicfiles
2条回答

请记住,mp3Fin.split()不会就地修改mp3Fin,而mp3Fin将保留一个字符串!在

所以当您到达第41行时,mp3Fin[1]得到了mp3Fin位置1的字符。这就是错误中“:”的来源,C:/...。在

试着直接发送字符串

pygame.mixer.music.load(mp3Fin)

一定要小心那些功能!在

mp3fin是一个字符串。你为什么要索引它?当您调用split()时,它将返回一个数组,您可以打印该数组,然后将其丢弃。在

在最后一行pygame.mixer.music.load(mp3Fin[1])您将拼接字符串并获取第二个字符,即“:”。在

你应该打电话给pygame.mixer.music.load(mp3Fin)


I want to pass a list of .mp3s from within a variable (mp3Fin) to pygame.mixer.music.load().

mp3Fin不是一个列表。mp3Post是目录中找到的文件的列表。当for循环迭代时,每个单独的文件都在mp3Fin中。尝试:

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

您可以尝试使用以下命令将列表传递给loadbuy:

^{pr2}$

相关问题 更多 >