首页 > 解决方案 > 如何在不停止程序其余部分的情况下在 python 中进行延迟

问题描述

我正在重新设计一个基本上按命令播放声音的程序。我正在尝试找到一种方法来随机播放歌曲列表。我对应该发生的事情有基本的想法,但我似乎无法找到让它发挥作用的方法。

我试过像'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])

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

标签: pythontkinter

解决方案


只是给你一些开始的地方。这将为您提供列表中的随机歌曲。

 songlist = ['a', 'b', 'c']

 def shuffle():
      while True:
          for s in songlist:
              song=random.choice(s)

              print(song)

 if __name__ == '__main__':
      shuffle()

推荐阅读