class QueuePlayer(QueueListener): def __init__(self, name): self.player = QueuedWavePlayer() super(QueuePlayer, self).__init__(name) def get_queued_trackes_to_be_processed(self): with self.lock: for queued_track in models.QueuedTrack.objects.filter(state="mixed"): yield queued_track def process_queued(self, queued_track): try: self.logger.info( "Sending %s to player (%s)..", queued_track.track.spotifyid, queued_track.get_wav_file_name() ) self.player.queue_for_playing(queued_track.get_wav_file_name()) queued_track.state = "played" queued_track.save() except Exception as e: self.logger.exception("background thread had an error: %s", e) queued_track.state = "error" queued_track.save() # triggers a track change notification queued_track.save() # triggers a track change notification
def __init__(self, name): self.player = QueuedWavePlayer() super(QueuePlayer, self).__init__(name)