def video_loop(master): video_count = 0 width = master.winfo_screenwidth() height = master.winfo_screenheight() while True: VIDEO_PATH = Path(my_videos[video_count]) player = OMXPlayer(VIDEO_PATH) player.set_video_pos(width * 0.162, height * 0.147, width * 0.674, height * 0.833) player.set_aspect_mode('fill') sleep(player.duration()) player.quit() video_count = video_count + 1 if video_count < len( my_videos) - 1 else 0
def play(): print('Starting player...') cinemagraphs_path = os.path.join('cinemagraphs', 'processed') cinemagraphs = os.listdir(cinemagraphs_path) shuffle(cinemagraphs) global current_player current_player = None for i, cinemagraph in enumerate(cinemagraphs): path_str = os.path.join(cinemagraphs_path, cinemagraph) path = Path(path_str) dbus_name = 'org.mpris.MediaPlayer2.omxplayer{}'.format(i) print('Now playing "{}".'.format(path_str)) previous_player = current_player current_player = OMXPlayer(path, args=['--loop', '--no-osd', '-b'], dbus_name=dbus_name) current_player.set_video_pos(0, 0, 1024, 600) if previous_player is not None: previous_player.quit() for alpha_fade_in in range(0, 255): current_player.set_alpha(alpha_fade_in) sleep(0.01) sleep(600) for alpha_fade_out in reversed(range(0, 255)): current_player.set_alpha(alpha_fade_out) sleep(0.02) current_player.quit()
class VideoPlayerScreen(Screen): slider = ObjectProperty() minimized = BooleanProperty(True) video_path = StringProperty() # 20200308tagesthemen.mp4 def is_playing(self): if hasattr(self, 'player'): try: return self.player.is_playing() except OMXPlayerDeadError: self.leave_player() return False else: return False def set_play_pause_bttn(self, *args): print(self.ids) if self.is_playing(): self.ids.play_pause_image.source = 'atlas://data/images/defaulttheme/media-playback-pause' else: self.ids.play_pause_image.source = 'atlas://data/images/defaulttheme/media-playback-start' def play(self): VIDEO_PATH = Path("videos/" + self.video_path) print(VIDEO_PATH) self.player = OMXPlayer(VIDEO_PATH, args=['-o', 'alsa', '--layer', '100000']) self.player.set_video_pos(0, 0, 800, 480) self.set_slider() self.change_size() Clock.schedule_interval(self.set_slider, 3) Clock.schedule_interval(self.set_play_pause_bttn, 1) def player_stop(self): Clock.unschedule(self.set_play_pause_bttn) Clock.unschedule(self.set_slider) if self.is_playing(): self.player.stop() @staticmethod def leave_player(): App.get_running_app().root.current = 'base' def play_pause(self): self.player.play_pause() def quit(self, gg, **kwargs): self.player.quit() App.get_running_app().stop() def set_slider(self, *args): try: pos = self.player.position() # in seconds as int duration = self.player.duration() # in seconds as float self.slider.value_normalized = pos / duration except OMXPlayerDeadError: self.leave_player() def set_videopos(self, *args): pos = self.player.position() # in seconds as int duration = self.player.duration() # in seconds as float if abs(pos / duration - self.slider.value_normalized) > 0.05: self.player.set_position(self.slider.value_normalized * duration) def change_size(self): if self.minimized: self.player.set_alpha(255) else: self.player.set_alpha(100) self.minimized = not self.minimized
from time import sleep import logging logging.basicConfig(level=logging.INFO) VIDEO_1_PATH = "../tests/media/test_media_1.mp4" player_log = logging.getLogger("Player 1") player = OMXPlayer(VIDEO_1_PATH, 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") # it takes about this long for omxplayer to warm up and start displaying a picture on a rpi3 sleep(2.5) player.set_position(5) player.pause() sleep(2) player.set_aspect_mode('stretch') player.set_video_pos(0, 0, 200, 200) player.play() sleep(5) player.quit()
class VideoPlayerScreen(Screen): slider = ObjectProperty() minimized = BooleanProperty(False) @staticmethod def clearbckgrnd(): Window.clearcolor = (0, 0, 0, 0) @staticmethod def addbckgrnd(): Window.clearcolor = (0, 0, 0, 1) def play(self): VIDEO_PATH = Path("../videos/20200308tagesthemen.mp4") self.player = OMXPlayer(VIDEO_PATH, args=['-o', 'alsa', '--layer', '10000']) #self.player = OMXPlayer('/home/pi/Documents/Radio/videos/20200223tagesthemen.mp4') self.player.set_video_pos(0, 0, 800, 480) #self.player.hide_video() #self.player.show_video() self.player.set_alpha(100) self.set_slider() #Clock.schedule_once(self.quit, 20) Clock.schedule_interval(self.set_slider, 3) def playpause(self): self.player.play_pause() def quit(self, gg, **kwargs): self.player.quit() App.get_running_app().stop() def set_slider(self, *args): pos = self.player.position() # in seconds as int duration = self.player.duration() # in seconds as float #return pos/duration self.slider.value_normalized = pos / duration #return 0.5 def set_videopos(self, *args): pos = self.player.position() # in seconds as int duration = self.player.duration() # in seconds as float if abs(pos / duration - self.slider.value_normalized) > 0.05: self.player.set_position(self.slider.value_normalized * duration) def change_size(self): # pass #width 800 #height 480 # check if crop as alternative if self.minimized: # self.player.set_video_pos(2,2,798,478) self.player.set_alpha(255) else: # self.player.set_video_pos(2,2,798,418) self.player.set_alpha(100) self.minimized = not self.minimized
from pathlib import Path from time import sleep import logging #import RPi.GPIO as GPIO #GPIO.setmode (GPIO.BOARD) #GPIO.setwarnings (False) VIDEO_PATH = "/home/pi/Desktop/elephant.mp4" player_log = logging.getLogger("Player1") intro = OMXPlayer(VIDEO_PATH, ['-o', 'local'], dbus_name='org.mpris.MediaPlayer2.omxplayer1') intro.playEvent += lambda _: player_log.info("Play") intro.pauseEvent += lambda _: player_log.info("Pause") intro.stopEvent += lambda _: player_log.info("Stop") sleep(2.5) intro.set_position(5) intro.pause() sleep(1) intro.set_aspect_mode("letterbox") intro.set_video_pos(50,100,1000,1000) intro.play() sleep(5) intro.quit()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((HOST, PORT)) sock.listen(1) conn, addr = sock.accept() vidPath = "raspi.avi" player_log = logging.getLogger("Player 1") player = OMXPlayer(vidPath, 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") player.set_aspect_mode('stretch') player.set_video_pos(0, 0, 700, int(512 * 2.14)) sleep(10) if noCommMode: # for debugging player.set_position(120 * 60) # player.play() # sleep(1) # player.pause() sleep(20) player.set_position(130 * 60) # player.play() sleep(20) player.set_position(140 * 60) sleep(20) player.stop()
while key != ord('q'): key = stdscr.getch() stdscr.addch(20, 25, key) stdscr.refresh() stdscr.addstr(2, 20, ', '.join(str(x) for x in VIDEO_LOCATION)) stdscr.addstr(10, 20, ' ') if key == ord('m'): vidx = VIDEO_LOCATION[2] - VIDEO_LOCATION[0] vidy = VIDEO_LOCATION[3] - VIDEO_LOCATION[1] vidx /= 0.99 vidy /= 0.99 VIDEO_LOCATION[2] = VIDEO_LOCATION[0] + int(vidx) VIDEO_LOCATION[3] = VIDEO_LOCATION[1] + int(vidy) player.set_video_pos(*VIDEO_LOCATION) if key == ord('n'): vidx = VIDEO_LOCATION[2] - VIDEO_LOCATION[0] vidy = VIDEO_LOCATION[3] - VIDEO_LOCATION[1] vidx *= 0.99 vidy *= 0.99 VIDEO_LOCATION[2] = VIDEO_LOCATION[0] + int(vidx) VIDEO_LOCATION[3] = VIDEO_LOCATION[1] + int(vidy) player.set_video_pos(*VIDEO_LOCATION) if key == curses.KEY_LEFT: stdscr.addstr(3, 20, "LEFT ") VIDEO_LOCATION[0] -= 1 VIDEO_LOCATION[2] -= 1 player.set_video_pos(*VIDEO_LOCATION) elif key == curses.KEY_RIGHT: stdscr.addstr(3, 20, "RIGHT")
from omxplayer.player import OMXPlayer from pathlib import Path from time import sleep import logging logging.basicConfig(level=logging.INFO) VIDEO_1_PATH = "../tests/media/test_media_1.mp4" player_log = logging.getLogger("Player 1") player = OMXPlayer(VIDEO_1_PATH, 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") # it takes about this long for omxplayer to warm up and start displaying a picture on a rpi3 sleep(2.5) player.set_position(5) player.pause() sleep(2) player.set_aspect_mode('stretch') player.set_video_pos(0, 0, 200, 200) player.play() sleep(5) player.quit()
class ScreenMovie(LcarsScreen): def setup(self, all_sprites): ############ Start base screen ############# ### BASE_ui all_sprites.add(LcarsBackgroundImage(), layer=0) self.ui_screen_base = all_sprites.get_sprites_from_layer(0) all_sprites.add(LcarsTab(colours.COM2, 3, (50, 80)), layer=1) all_sprites.add(LcarsImageBlock(colours.BLUE5, pos=(50, 115), rectSize=(1688, 38)), layer=1) all_sprites.add(LcarsTab(colours.COM2, 4, (50, 1810)), layer=1) all_sprites.add(LcarsTab(colours.COM2, 1, (953, 50)), layer=1) all_sprites.add(LcarsImageBlock(colours.BLUE5, pos=(953, 1361), rectSize=(443, 77)), layer=1) all_sprites.add(LcarsBlockSmall( colours.BLUE6, (953, 116), "REWIND", self.rewHandler, textSize=.75, fontFace="assets/OpenSansCondensed-Bold.ttf"), layer=2) all_sprites.add(LcarsBlockSmall( colours.BLUE6, (953, 365), "PLAY", self.playHandler, textSize=.75, fontFace="assets/OpenSansCondensed-Bold.ttf"), layer=2) all_sprites.add(LcarsBlockSmall( colours.BLUE6, (953, 614), "F F", self.ffHandler, textSize=.75, fontFace="assets/OpenSansCondensed-Bold.ttf"), layer=2) all_sprites.add(LcarsBlockSmall( colours.BLUE6, (953, 863), "STOP", self.stopHandler, textSize=.75, fontFace="assets/OpenSansCondensed-Bold.ttf"), layer=2) all_sprites.add(LcarsBlockSmall( colours.BLUE6, (953, 1112), "BASE", self.mainHandler, textSize=.75, fontFace="assets/OpenSansCondensed-Bold.ttf"), layer=2) all_sprites.add(LcarsImageBlock(colours.BLUE5, pos=(953, 1361), rectSize=(443, 77)), layer=1) all_sprites.add(LcarsTab(colours.COM2, 2, (953, 1810)), layer=1) self.fileList = LcarsTextBlock(colours.BLUE6, (94, 365), self.dirlist(), rectSize=(1694, 781)) all_sprites.add(self.fileList, layer=3) all_sprites.add(LcarsImageBlock(colours.BLUE2, pos=(94, 116), text="01-3906", rectSize=(243, 100)), layer=3) all_sprites.add(LcarsImageBlock(colours.BLUE3, pos=(200, 116), text="96-4783", rectSize=(243, 500)), layer=3) all_sprites.add(LcarsImageBlock(colours.BLUE4, pos=(706, 116), text="32-6487", rectSize=(243, 163)), layer=3) all_sprites.add(LcarsElbow(colours.BLUE5, 0, (875, 116)), layer=3) all_sprites.add(LcarsImageBlock(colours.BLUE4, pos=(904, 398), rectSize=(1074, 43)), layer=3) all_sprites.add(LcarsImageBlock(colours.BLUE3, pos=(875, 1478), rectSize=(44, 72)), layer=3) all_sprites.add(LcarsElbow(colours.BLUE5, 3, (875, 1528)), layer=3) self.file_address = LcarsText( colours.BLACK, (900, 450), "NO MEDIA SELECTED", textSize=.75, fontFace="assets/OpenSansCondensed-Bold.ttf") all_sprites.add(self.file_address, layer=3) self.list_block = all_sprites.get_sprites_from_layer(3) #self.VIDEO_1_PATH = "./assets/video/LittleShopofHorrors1960Color.mp4" ### sound effects self.beep1 = Sound("assets/audio/panel/201.wav") self.lastClockUpdate = 0 #Sound("assets/audio/panel/220.wav").play() ############ End base screen ############# def dirlist(self, dirPath='./assets/video'): #os.scandir(dirPath) file_names = [] for item in os.scandir(dirPath): if item.is_file() or item.is_dir(): file_names.append(item.name) return file_names def update(self, screenSurface, fpsClock): if pygame.time.get_ticks() - self.lastClockUpdate > 500: if self.fileList.visible == True: if self.fileList.get_state() == None: self.file_address.setText("NO MEDIA SELECTED") else: self.file_address.setText(self.fileList.get_state()) self.lastClockUpdate = pygame.time.get_ticks() LcarsScreen.update(self, screenSurface, fpsClock) def handleEvents(self, event, fpsClock): if event.type == pygame.MOUSEBUTTONDOWN: self.beep1.play() if event.type == pygame.MOUSEBUTTONUP: return False def playHandler(self, item, event, clock): try: self.player.play_pause() except: try: self.VIDEO_1_PATH = './assets/video/' + self.fileList.get_state( ) self.player = OMXPlayer( self.VIDEO_1_PATH, dbus_name='org.mpris.MediaPlayer2.omxplayer1') self.player.set_aspect_mode('stretch') self.player.set_video_pos(116, 94, 1804, 947) self.player.set_alpha(255) self.showhide(self.list_block) except: pass def rewHandler(self, item, event, clock): try: self.player.action(omxkey.REWIND) except: pass def showhide(self, listofitems): for items in listofitems: items.visible = not items.visible def stopHandler(self, item, event, clock): try: self.player.stop() self.showhide(self.list_block) except: pass def ffHandler(self, item, event, clock): try: self.player.action(omxkey.FAST_FORWARD) except: pass ###### Screen Handling ##### def mainHandler(self, item, event, clock): try: self.player.stop() except: pass from screens.base import ScreenBase self.loadScreen(ScreenBase()) def logoutHandler(self, item, event, clock): from screens.authorize import ScreenAuthorize self.loadScreen(ScreenAuthorize()) def libraryHandler(self, item, event, clock): from screens.library import ScreenLibrary self.loadScreen(ScreenLibrary())