[英]How can I make a single Button play music, pause music and unpause music in Python using tkinter and 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()
不会就位修改mp3Fin
- mp3Fin
保持字符串!
因此,当您到达第41 mp3Fin[1]
, mp3Fin[1]
将字符放在mp3Fin
位置1 mp3Fin
。 这就是错误中的“:”来自C:/...
。
尝试直接发送字符串
pygame.mixer.music.load(mp3Fin)
必须小心使用这些功能!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.