首页 > 解决方案 > tkinter 窗口在播放歌曲时冻结

问题描述

我最近开始制作 GUI 应用程序,我想做一个简单的音乐播放器。我正在使用 pygame 库来播放歌曲,效果很好。问题是播放歌曲时窗口冻结,我无法按任何按钮。谁能指出我正确的方向?我搜索了很多,一无所获。这是代码:

import tkinter.filedialog as filedialog
from tkinter import *
import os
import pygame

def play(position):
    pygame.mixer.music.load(listOfSongs[position])
    global index
    index += 1
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        pygame.time.Clock().tick(5)

def next(event):
    global index
    index += 1
    play(index)


root = Tk()
listOfSongs = []
directory = filedialog.askdirectory()
print("Loading files from directory: ", directory)
os.chdir(directory)
pygame.mixer.init()
for file in os.listdir(directory):
    if file.endswith('.mp3'):
        print("Appending file: ", file)
        listOfSongs.append(file)

index = 0
play(index)
b = Button(root, text="Next", bg='red', width=5)
b.bind("<Button-1>", next)
b.pack()
root.mainloop()

标签: pythontkintermp3

解决方案


推荐阅读