Воспроизведение музыки с помощью Pyglet и Tkinter в Python

Я хотел создать простой графический интерфейс с кнопками воспроизведения и остановки для воспроизведения mp3-файла в python. Я создал очень простой графический интерфейс с помощью Tkinter, который состоит из 2 кнопок (остановки и воспроизведения ).

Я создал функцию, которая делает следующее.:

def playsound () :
    sound = pyglet.media.load('music.mp3')
    sound.play()
    pyglet.app.run()

Я добавил эту функцию в качестве команды для воспроизведения кнопки. Я также сделал другую функцию для остановки музыки:

def stopsound ():
    pyglet.app.exit

Я добавил эту функцию в качестве команды на вторую кнопку. Но проблема в том, что когда я нажимаю кнопку воспроизведения, python и графический интерфейс зависают. Я могу попытаться закрыть окно, но оно не закрывается, и кнопка остановки не реагирует. Я понимаю, что это связано с тем, что pyglet.app.run ()выполняется до конца песни, но как именно мне предотвратить это? Я хочу, чтобы графический интерфейс останавливал музыку, когда я нажимаю кнопку. Любые идеи о том, где я могу найти решение этой проблемы?

5
задан Matthieu Brucher 31 December 2018 в 13:18
поделиться