def playerFactory(filename, logger): ''' Creates an instance of OMXPlayer the starting state we desire. If filename does not exist (or is None), generates a Mock devices with equivalent functionality (but no media output) ''' if filename is not None and not os.path.isfile(filename): logger.warning("Media file: {} DOES NOT EXIST".format(filename)) filename = None # force try to fail quickly below try: player = OMXPlayer(filename, dbus_name='org.mpris.MediaPlayer2.omxplayer1', args=['-b', '-o', 'both']) except Exception as e: player = omxPlayerMock(filename) player.playEvent += lambda _: logger.debug("Play") player.pauseEvent += lambda _: logger.debug("Pause") player.stopEvent += lambda _: logger.debug("Stop") while True: try: player.hide_video() player.pause() break except Exception as e: logger.exception("Exception in playerFactory") sys.exit(1) return player
class Video_Player: def __init__(self, player_id, video_path): self.player_id = player_id self.video_path = video_path self.player = OMXPlayer(video_path, args=['--loop'], dbus_name="org.mpris.MediaPlayer2.player" + player_id) sleep(2) # def load(self, video_path): self.player.hide_video() self.video_path = video_path self.player.load(video_path) def play(self): self.player.play() self.player.show_video() def pause(self): self.player.hide_video() self.player.pause() def stop(self): self.player.stop()
def playVideo(video, player_log): if Path(video.path).is_file(): player = OMXPlayer(video.path, dbus_name='org.mpris.MediaPlayer2.omxplayer1', args=['--loop']) player.playEvent += lambda _: player_log.info("Play") player.pauseEvent += lambda _: player_log.info("Pause") player.stopEvent += lambda _: player_log.info("Stop") player.hide_video() player.set_position(video.start) player.set_volume(video.volume) if video.crop != None: player.set_video_crop(video.crop[0], video.crop[1], video.crop[2], video.crop[3]) player.set_aspect_mode(video.aspect) player.show_video() player.play() return player else: return None
def start_video_player( ): # Starte OMX Videoplayer der am unteren Bildschirmrand angezeigt wird # TODO global variablen checken, file_list muss ziemlich sicher nicht global sein, # video_player wahrscheinlich auch nicht, first_time_video_played wird gar nicht benutzt global file_list, video_player, index_video, first_time_video_played print("Laenge von Filelist: {}".format(len(file_list))) t = threading.currentThread() index_video = 0 while getattr(t, "running", True): if len(file_list) > 0: print("File exists: {}".format( os.path.exists(file_list[index_video]))) if os.path.exists(file_list[index_video]): filey = file_list[index_video] print("VIDEO Playing {}".format(filey), flush=True) t = threading.Event() index_video = index_video + 1 if index_video > len(file_list) - 1: index_video = 0 try: video_player_playing = video_player.is_playing() except: video_player_playing = False if not video_player_playing: video_player = OMXPlayer( filey, args=[ '--orientation', '270', '--win', '1312,0,1920,1080', '--no-osd', '--vol', '-10000000' ], dbus_name='org.mpris.MeidlaPlayer2.omxplayer1') else: video_player.load(filey) try: duration_of_video = video_player.duration() + 3 except: duration_of_video = 3 print("duration of video failed", flush=True) print(duration_of_video, flush=True) video_player.mute() if max_people_reached(): video_player.hide_video() video_player.play_sync() sleep(3) # sleep(duration_of_video) else: break else: break
def start_video_player(): global file_list, video_player, index_video, first_time_video_played print("Laenge von Filelist: {}".format(len(file_list))) t = threading.currentThread() index_video = 0 while getattr(t, "running", True): if len(file_list) > 0: print("File exists: {}".format( os.path.exists(file_list[index_video]))) if os.path.exists(file_list[index_video]): filey = file_list[index_video] print("VIDEO Playing {}".format(filey), flush=True) t = threading.Event() index_video = index_video + 1 if index_video > len(file_list) - 1: index_video = 0 try: video_player_playing = video_player.is_playing() except: video_player_playing = False print(video_player_playing) if not video_player_playing: video_player = OMXPlayer( filey, args=[ '--orientation', '270', '--win', '1312,0,1920,1080', '--no-osd', '--vol', '-10000000' ], dbus_name='org.mpris.MeidlaPlayer2.omxplayer1') else: video_player.load(filey) try: duration_of_video = video_player.duration() + 3 except: duration_of_video = 3 print("duration of video failed", flush=True) print(duration_of_video, flush=True) video_player.mute() if max_people_reached(): video_player.hide_video() video_player.play_sync() sleep(3) #sleep(duration_of_video) else: break else: break
def initPlayer(self, video, dbusName, log): player = OMXPlayer(video.path, dbus_name=dbusName, args=['--loop']) player.hide_video() player.pause() player.set_position(video.start) player.set_volume(video.volume) player.set_aspect_mode(video.aspect) player.active = False return player
def prepare_player(player: OMXPlayer, name: str = "player"): player.playEvent += lambda _: player.show_video() player.pauseEvent += lambda _: player.hide_video() add_player_log(player, name)
dbus_name='org.mpris.MediaPlayer2.omxplayer1') player.playEvent += lambda _: player_log.info("Play") player.pauseEvent += lambda _: player_log.info("Pause") player.stopEvent += lambda _: player_log.info("Stop") player2 = OMXPlayer(VIDEO_2_PATH, args=['--loop'], dbus_name='org.mpris.MediaPlayer2.omxplayer2') #logger.debug("-----------------------------------b-----------------") player2.playEvent += lambda _: player_log.info("Play") player2.pauseEvent += lambda _: player_log.info("Pause") player2.stopEvent += lambda _: player_log.info("Stop") # it takes about this long for omxplayer to warm up and start # displaying a picture on a rpi3 player.hide_video() sleep(2.5) try: while True: if GPIO.input(button1) == 0: #logger.debug("button 1 == 1") player.hide_video() player2.show_video() else: player2.hide_video() player.show_video() except: logger.error player.quit()
#!/usr/bin/env python3 from omxplayer.player import OMXPlayer from pathlib import Path from time import sleep VIDEO_PATH00 = Path("/home/pi/Miac/01.mp4") player00 = OMXPlayer(VIDEO_PATH00, args='-b') player00.pause() player00.hide_video() sleep(2) VIDEO_PATH = Path("/home/pi/Miac/03.mp4") player = OMXPlayer(VIDEO_PATH) sleep(1) player.quit() player.load(VIDEO_PATH) sleep(2) player.pause() print(player.stopEvent) sleep(2) player.hide_video() sleep(2) player.show_video() player.quit() sleep(3) player00.quit()
videos.append(video('../shared/river.mp4', None, 'fill', 0, 0.5)) videos.append(video('../shared/testcard.mp4', None, 'fill', 0, 0.35)) videos.append(video('../shared/timer.mp4', None, 'fill', 10, 0.35)) player_log = logging.getLogger("Player 1") # Create player 1 player1 = OMXPlayer(videos[0].path, dbus_name='org.mpris.MediaPlayer2.omxplayer1', args=['--loop']) player1.playEvent += lambda _: player_log.info("Play") player1.pauseEvent += lambda _: player_log.info("Pause") player1.stopEvent += lambda _: player_log.info("Stop") player1.pause() player1.hide_video() player1.set_position(videos[0].start) player1.set_volume(videos[0].volume) player1.set_aspect_mode(videos[0].aspect) # Show player 1 player1.show_video() player1.play() sleep(5) # Load player 1 with video 2 player1.pause() player1.hide_video() player1.load(videos[1].path, pause=True) player1.set_position(videos[1].start)