Как сделать чтобы при закрытии окна tkinter звук от Pyglet останавливался?

veDO

Новичок
Пользователь
Май 15, 2020
12
4
3
Вот код, делаю как пример работы с ткинтером. Когда время истекает, начинает играть будильник, как сделать что бы при закрытии окна tkinter (соответственно завершения работы скрипта) этот звук прекращался?
Python:
from tkinter import *
import time
import pyglet
song = pyglet.media.load('C:/Users/Public/Music/bud.mp3')
   
root = Tk()
root.resizable( width = False, height = False )
root.geometry('300x110')
root.title('TIMER BY VEDO')
root ['bg'] = 'white'
root.iconbitmap ('clock.ico')
text_time = Label(text = 'Через сколько?(в мин, с, ч)', font = 'Consolas 12',
fg = '#3d3d42',
bg = '#ccc')
test = Entry(root, font = 'Consolas 12',relief = 'raised')
enter = Button (text = 'Начать',relief = 'raised', font = 'TimesNewRoman 12')
soundyes = Checkbutton(text = 'Проиграть звук по истечению времени?', font = 'Consolas 9', bg = 'white')
text_time.pack()
test.pack()
soundyes.pack()
enter.pack()
def timerstart (event):
    timer = test.get()
    print (timer)
    check = timer.replace('с',' с').replace('мин', ' мин').replace('ч', ' ч').replace('c', ' с').split()
    num = int(check[0])
    draft = check[1]
    if draft == 'ч':
        time2 = num*3600
    elif draft == 'мин':
        time2 = num*60
    elif draft == 'с':
        time2 = num
    time2 = int(time2)
    while time2 > 0:
        print ('Осталось '+str(time2)+'с')
        time2 -= 1
        time.sleep(1)
        print ('Время вышло!')
        song.play()
    input ()
    print('Ошибка!')

enter.bind('<Button-1>', timerstart)

root.mainloop()
 

veDO

Новичок
Пользователь
Май 15, 2020
12
4
3
Извиняюсь за тупняк, уже решил. Просто убрал input.
 

Форум IT Специалистов