Как исправить ошибку python pyglet для воспроизведения и паузы? - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь создать аудиоплеер, используя tkinter и отдельный класс для Player. Я обнаружил ошибку. Я могу воспроизвести песню, когда я вызываю функцию «start_play_thread», но после того, как я нажимаю / вызываю функцию «Пауза», а затем пытаюсь воспроизвести снова, песня продолжает зацикливаться на той же секунде, с которой я приостановил ее. Кто-нибудь может мне помочь, пожалуйста?

import pyglet
import time
from threading import Thread

class Player():
    parent=None
    song_length=0
    current_song_time=0
    paused=False

    def play_media (self):
        try:
            self.myplayer = pyglet.media.Player()
            self.source = pyglet.media.load(self.parent.current_track)
            self.myplayer.queue(self.source)
            self.myplayer.play()

            pyglet.app.run()

        except:
            pass
    def start_play_thread(self):
        player_thread = Thread(target=self.play_media)
        player_thread.start()

        time.sleep(4)
        self.actual_song_time()

    def pause_song(self):
        try:
            self.myplayer.pause()
        except :
            pass

    def unpause_song(self):
        try:
            self.myplayer.play()
        except:
            pass

    def actual_song_lenght(self):
        try:
            self.song_lenght = self.source.duration
        except:
            self.song_lenght = 0
        return self.song_lenght

    def set_volume(self,value):
        try:
            self.myplayer.volume=value
        except:
            pass

    def actual_song_time(self):
        try:
            self.current_song_time = self.myplayer.time
        except:
            self.current_song_time = 0
        return  self.current_song_time
if __name__ == '__main__':
    print('a pyglet player class implementation')

Первое изображение

Второе

...