Как сделать задержку в Python без остановки остальной части программы - PullRequest
0 голосов
/ 08 февраля 2019

Я перерабатываю программу, которая в основном воспроизводит звук по команде.Я пытаюсь найти способ перемешать список песен.У меня есть базовое представление о том, что должно произойти, но я не могу найти способ, чтобы это сработало.

Я пробовал такие вещи, как time.sleep (1) и .after (милисекунды,function) '.

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 голосов
/ 08 февраля 2019

Одна вещь, которую вы можете попробовать, это использовать потоки.поэтому сначала импортируйте модуль потока:

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()
0 голосов
/ 08 февраля 2019

Просто чтобы дать вам место для начала.Это даст вам случайную песню из списка.

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

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

              print(song)

 if __name__ == '__main__':
      shuffle()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...