Beispiel #1
0
def omxplayer_process(queue):
    try:
        player_num = 0
        last_video = None
        video = True
        while video:
            #log.debug("Warte auf Befehle")
            video = queue.get()
            try:
                # block queue
                queue.put_nowait(True)
            except:
                ...
            log.debug('Play {}'.format(video))
            if not last_video == video:
                try:
                    player.quit()
                except:
                    killall_omxplayer()
                log.debug('Load new Video: {}'.format(video))
                dbus_name = 'org.mpris.MediaPlayer2.omxplayer{}'.format(
                    player_num)
                player = OMXPlayer(video,
                                   args=omxplayer_args,
                                   dbus_name=dbus_name,
                                   pause=True)
                player_num += 1
                #log.debug(player.volume())
                player.set_volume(1.0)
                time.sleep(1)

            # das erste Video soll nicht abgespielt werden, sondern nur einen Kaltstart vermeiden
            if not last_video == None:
                player.set_alpha(255)
                player.play_sync()
                player.pause()
                player.set_alpha(0)
                player.set_position(0)
                log.debug('Video fertig: {}'.format(video))

            last_video = video

            try:
                # clean queue
                queue.get_nowait()
            except:
                ...
    except KeyboardInterrupt:
        ...
    finally:
        killall_omxplayer()