shutdown sync server if player fails
This commit is contained in:
parent
c2c1a711d9
commit
c2852838dd
1 changed files with 17 additions and 11 deletions
|
@ -57,11 +57,12 @@ class Player(Thread):
|
|||
current = ''
|
||||
playlist_items = 260
|
||||
|
||||
def __init__(self, peer, player, playlist, prefix):
|
||||
def __init__(self, peer, player, playlist, prefix, server):
|
||||
self.peer = peer
|
||||
self.playlist = playlist
|
||||
self.prefix = prefix
|
||||
self.player = player
|
||||
self.server = server
|
||||
self.queue = Queue()
|
||||
Thread.__init__(self)
|
||||
self.daemon = True
|
||||
|
@ -72,15 +73,20 @@ class Player(Thread):
|
|||
self.position, self.playlist_items = update_playlist(self.playlist, self.prefix, position=self.get_position())
|
||||
logger.debug("load playlist")
|
||||
self.player.loadlist(self.playlist)
|
||||
self.player.pause = True
|
||||
while self.running:
|
||||
logger.debug("play")
|
||||
self.play()
|
||||
self.position = (self.position + 1) % self.playlist_items
|
||||
logger.debug("ping")
|
||||
self.ping()
|
||||
logger.debug("wait")
|
||||
self.queue.get()
|
||||
try:
|
||||
self.player.pause = True
|
||||
while self.running:
|
||||
logger.debug("play")
|
||||
self.play()
|
||||
self.position = (self.position + 1) % self.playlist_items
|
||||
logger.debug("ping")
|
||||
self.ping()
|
||||
logger.debug("wait")
|
||||
self.queue.get()
|
||||
except:
|
||||
logger.error("playback failed")
|
||||
self.running = False
|
||||
self.server.shutdown()
|
||||
|
||||
def play(self):
|
||||
self.playing = True
|
||||
|
@ -157,7 +163,7 @@ def main():
|
|||
listen = '0.0.0.0'
|
||||
server = ThreadingUDPServer((listen, args.port), Handler)
|
||||
server.allow_reuse_address = True
|
||||
server.player = Player(peer, player, args.playlist, args.prefix)
|
||||
server.player = Player(peer, player, args.playlist, args.prefix, server)
|
||||
player.register_key_binding('q', server.q_binding)
|
||||
|
||||
logger.debug("listen on %s...", args.port)
|
||||
|
|
Loading…
Reference in a new issue