首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以把一个列表传递给PyGame音乐吗?

我可以把一个列表传递给PyGame音乐吗?
EN

Stack Overflow用户
提问于 2015-09-28 20:12:59
回答 2查看 486关注 0票数 2

Win 10/64 Win/3.5:

我想从变量( pygame.mixer.music.load(). mp3Fin)中传递一个.mp3s列表给有办法这样做吗?当我单独加载时,PyGame确实可以工作。在过去的几周里,我一直在学习编程/python,我对堆栈溢出很陌生,如果我遗漏了任何东西,我很抱歉。

latest 这里是最新的代码,正确的格式化/缩进。它仍然有一个错误,但这个错误已经变成了一些与“卢旺达人”有关的东西。只是在bing上找到了一些关于卢旺达人的链接。将删除之前的代码,因为我认为它们不再有帮助了。

代码:

代码语言:javascript
复制
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()

卢旺达错误:

代码语言:javascript
复制
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***

这是我在这个原始帖子上做的最后一次编辑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-28 20:30:59

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

在最后一行pygame.mixer.music.load(mp3Fin[1])中,您要剪切字符串并接受第二个字符,即':‘。

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

我想将.mp3s的列表从变量(mp3Fin)传递给pygame.mixer.music.load()。

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

代码语言:javascript
复制
for mp3Fin in mp3Post:
    if mp3Fin.endswith(".mp3"):
        pygame.mixer.init()
        pygame.mixer.music.load(mp3Fin)

您可以尝试使用以下方法将列表传递给load buy:

代码语言:javascript
复制
mp3Post = get_files("C:\\Users\\SoCha\\Music")
pygame.mixer.init()
pygame.mixer.music.load([s for s in mp3Post if s.endswith(".mp3")])
票数 0
EN

Stack Overflow用户

发布于 2015-09-28 20:37:38

记住,mp3Fin.split()并没有修改mp3Fin的位置-- mp3Fin保持一个字符串!

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

尝试将字符串直接发送给它

代码语言:javascript
复制
pygame.mixer.music.load(mp3Fin)

一定要小心这些功能!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32831016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档