繁体   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