如何在不停止程序其余部分的情况下延迟python

时间:2019-02-07 21:11:15

标签: python tkinter

我正在重新设计一个基本上可以在命令上播放声音的程序。我正在尝试找到一种随机播放歌曲列表的方法。我对应该发生的事情有基本的了解,但似乎无法找到一种可行的方法。

我尝试了诸如“ time.sleep(1)”和“ .after(毫秒,函数)”之类的东西。

songlist = [["SongName","SongFileName",{length of song in miliseconds}], 
           ["SongName2","SongFileName2",{length of song in miliseconds}]]

def shuffle():
    shuffle=True
    while shuffle == True:
        song=random.choice(songlist)
        song2 =random.choice(songlist)
        while song==song2:
            song2=random.choice(songlist)
        label2.config(text=song[0])
        winsound.PlaySound(song[1], winsound.SND_ASYNC)
        window.after(song[2])

我想让它播放歌曲列表中的随机歌曲,直到按下“停止”按钮(代码中未显示“停止”按钮)

2 个答案:

答案 0 :(得分:0)

只为您提供一些起点。这将从列表中随机选择一首歌曲。

cs

答案 1 :(得分:0)

您可以尝试的一件事是使用线程。因此,首先导入线程模块:

Python2.7: from thread import start_new_thread

Python3.x: import threading

然后,您只需调用要与等待函数“并行”运行的方法,就您而言,就是“ playSong”方法:

Python2.7:start_new_thread(playSong, ())

Python3.x:

t = threading.Thread(target=playSong)
t.start()