Exemplo n.º 1
0
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
Exemplo n.º 2
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()
Exemplo n.º 3
0
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()
Exemplo n.º 5
0
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()
Exemplo n.º 7
0
    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()
Exemplo n.º 8
0
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")
Exemplo n.º 9
0
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()
Exemplo n.º 10
0
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())