Exemplo n.º 1
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.º 2
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
Exemplo n.º 3
0
try:
    player = OMXPlayer("/home/pi/Projects/MuzeApp/media.mp4",
                       args=[
                           '--loop', '-o', 'both', '--no-osd', '--win',
                           '0 0 ' + m_width + ' ' + m_height
                       ],
                       dbus_name='org.mpris.MediaPlayer2.omxplayer1' +
                       str(random.randint(0, 99)))
except Exception as e:
    print(e)
player.playEvent += lambda _: player_log.info("Play")
player.pauseEvent += lambda _: player_log.info("Pause")
player.stopEvent += lambda _: player_log.info("Stop")
time.sleep(5)
player.pause()
player.set_alpha(0)

#GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

#set GPIO Pins
GPIO_TRIGGER = 23
GPIO_ECHO = 24

#set GPIO direction (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)

measurements = []
lostDetectionCounterMax = lostInTime * 1000 / delay  #Iteration counts for deactivation
is_playing = False
Exemplo n.º 4
0
class VideoPlayer:
    def __init__(self, root, message_handler, data, name):
        self.root = root
        self.message_handler = message_handler
        self.data = data
        self.omx_player = None
        self.name = name
        self.omx_running = False
        self.status = 'EMPTY'
        self.total_length = 0.0
        self.bankslot_number = '*-*'
        self.start = -1.0
        self.end = -1.0
        self.rate = 1
        self.crop_length = 0.0
        self.location = ''
        self.load_attempts = 0
        self.alpha = 0

    def try_load(self, layer):
        load_attempts = 0
        while (load_attempts < 2):
            load_attempts = load_attempts + 1
            if self.load(layer):
                print('load success')
                return True
            else:
                print('load failed')
        self.message_handler.set_message('ERROR', 'failed to load')
        self.status = 'ERROR'
        return False

    def load(self, layer):
        #try:
        self.get_context_for_player()
        is_dev_mode, first_screen_arg, second_screen_arg = self.set_screen_size_for_dev_mode(
        )
        arguments = [
            '--no-osd', '--layer',
            str(layer), '--adev', 'local', '--alpha', '0', first_screen_arg,
            second_screen_arg
        ]
        if not is_dev_mode:
            arguments.append('--blank=0x{}'.format(
                self.data.get_background_colour()))
        self.status = 'LOADING'
        print('the location is {}'.format(self.location))
        if self.location == '':
            self.status = 'EMPTY'
            return True
        self.omx_player = OMXPlayer(self.location,
                                    args=arguments,
                                    dbus_name=self.name)
        self.omx_running = True
        self.total_length = self.omx_player.duration(
        )  # <-- uneeded once self.duration stores float
        if (self.end is -1):
            self.end = self.total_length
        if (self.start is -1):
            self.start = 0
        self.crop_length = self.end - self.start
        print('{}: the duration is {}'.format(self.name, self.total_length))
        if self.start > 0.9:
            self.set_position(self.start - 0.9)
        if 'show' in self.data.settings['sampler']['ON_LOAD']['value']:
            self.set_alpha_value(255)
        else:
            self.set_alpha_value(0)
        self.pause_at_start()
        return True
        #except (ValueError, SystemError) as e:
        #  print(e)
        #self.message_handler.set_message('ERROR', 'load attempt fail')
        #return False

    def pause_at_start(self):
        position = self.get_position()
        start_threshold = round(self.start - 0.02, 2)
        if position > start_threshold:
            if self.status == 'LOADING':
                self.status = 'LOADED'
                self.omx_player.pause()
        elif self.omx_running:
            self.root.after(5, self.pause_at_start)

    def start_video(self):
        if 'show' in self.data.settings['sampler']['ON_START']['value']:
            self.set_alpha_value(255)
        else:
            self.set_alpha_value(0)
        if 'play' in self.data.settings['sampler']['ON_START']['value']:
            self.status = 'PLAYING'
            self.omx_player.play()
        else:
            self.status = 'START'
        self.pause_at_end()

    def pause_at_end(self):
        position = self.get_position()
        end_threshold = self.end - 0.2
        if (position > end_threshold):
            self.status = 'FINISHED'
            self.omx_player.pause()

            print('its paused at end!')
        elif (self.omx_running):
            self.root.after(5, self.pause_at_end)

    def reload(self, layer):
        self.exit()
        self.omx_running = False
        self.try_load(layer)

    def is_loaded(self):
        return self.status is 'LOADED'

    def is_finished(self):
        return self.status is 'FINISHED'

    def get_position(self):
        try:
            return self.omx_player.position()
        except:
            print('{}: error get_position'.format(self.name))
            return -1

    def get_context_for_player(self):
        next_context = self.data.get_next_context()
        self.location = next_context['location']
        #self.total_length = next_context['length']
        self.start = next_context['start']
        self.end = next_context['end']
        self.bankslot_number = next_context['bankslot_number']
        self.rate = next_context['rate']

    def toggle_pause(self):
        self.omx_player.play_pause()
        self.status = self.omx_player.playback_status().upper()

    def toggle_show(self):
        if self.alpha > 127:
            self.show_toggle_on = False
            self.set_alpha_value(0)
        else:
            self.show_toggle_on = True
            self.set_alpha_value(255)

    def set_alpha_value(self, amount):
        self.omx_player.set_alpha(amount)
        self.alpha = amount

    def seek(self, amount):
        position = self.get_position()
        after_seek_position = position + amount
        if after_seek_position > self.start and after_seek_position < self.end:
            self.set_position(after_seek_position)
            #self.player.seek(amount)
        else:
            self.message_handler.set_message('INFO',
                                             'can not seek outside range')

    def change_rate(self, amount):
        new_rate = self.rate + amount
        if (new_rate > self.omx_player.minimum_rate()
                and new_rate < self.omx_player.maximum_rate()):
            updated_speed = self.omx_player.set_rate(new_rate)
            self.rate = new_rate
            print('max rate {} , min rate {} '.format(
                self.omx_player.maximum_rate(),
                self.omx_player.minimum_rate()))
            return new_rate
        else:
            self.message_handler.set_message(
                'INFO', 'can not set speed outside of range')
            return self.rate

    def set_position(self, position):
        self.omx_player.set_position(position)

    def exit(self):
        try:
            self.omx_player.quit()
            self.status = 'EMPTY'
            self.omx_running = False
        except:
            pass

    def set_screen_size_for_dev_mode(self):
        ## only dev mode is needed now that auto handles all modes... can be removed probably ...
        if self.data.settings['other']['DEV_MODE_RESET']['value'] == 'on':
            return True, '--win', '50,350,550,750'
        else:
            aspect_mode = self.data.settings['video']['SCREEN_MODE']['value']
            return False, '--aspect-mode', aspect_mode
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
Exemplo n.º 6
0
import os

from omxplayer.player import OMXPlayer
# from pathlib import Path
from time import sleep
import sys

# VIDEO_PATH = Path("./vid.mp4")

player = OMXPlayer("./vid.mp4", args=[])
player.set_alpha(125)

try:
  sleep(5)
  player.pause()
  player.action(2)
  sleep(1)
  player.pause()
  player.action(2)
  player.play()
  sleep(1)
  player.action(2)
  sleep(1)
  player.action(2)
  sleep(1)
except KeyboardInterrupt:
  player.quit()
  sys.exit()
# os.system('mkfifo t cat t | omxplayer --no-osd -b vid.mp4 &')
# os.system('echo p > t rm t')
Exemplo n.º 7
0
player1 = None
player2 = None

video_playlist = [
    VideoFile(1, "/media/pi/TOSHIBA1/Apocalyptic.mp4"),
    VideoFile(2, "/media/pi/TOSHIBA1/ledtime.mp4")
]
player_log = logging.getLogger("Player")

player1 = OMXPlayer(video_playlist[0].path,
                    args='--win 0,0,1920,1080 --layer 2',
                    bus_address_finder=None,
                    Connection=None,
                    dbus_name='orb.mpris.MediaPlayer2.omxplayer1',
                    pause=True)
player1.set_alpha(200)

player2 = OMXPlayer(video_playlist[1].path,
                    args='--win 0,0,1920,1080 --layer 1',
                    bus_address_finder=None,
                    Connection=None,
                    dbus_name='orb.mpris.MediaPlayer2.omxplayer2',
                    pause=True)

player1.play()
sleep(player1.duration() - 1)
alpha1 = 200

player2.pause()
for x in range(6):
    sleep(0.1)
Exemplo n.º 8
0
    values = sorted(values, reverse=True)
    r = sum(values[:int(num_samples * 0.2)]) / int(num_samples * 0.2)
    #print (' Average audio intensity is r', int(r))
    time.sleep(.1)

    stream.close()
    p.terminate()
    return r


if (__name__ == '__main__'):

    VIDEO_PATH = "/home/pi/Desktop/rasto.mp4"
    player = OMXPlayer(VIDEO_PATH, args=['--no-osd', '--loop', '-b'])
    player.set_aspect_mode('fill')
    player.set_alpha(0)

    while (True):
        r = audio_int()  # To measure your  mic levels
        if r > 5000:
            alpha = alpha + 10
            if alpha > 255:
                alpha = 255
        else:
            alpha = alpha - 10
            if alpha < 0:
                alpha = 0

        print(alpha)
        player.set_alpha(alpha)
Exemplo n.º 9
0
import time
import gaugette.gpio
import gaugette.rotary_encoder
import os
from omxplayer.player import OMXPlayer
# from pathlib import Path
import sys

player = OMXPlayer("./vid.mp4", args=[])
player.set_alpha(50)
player.set_rate(0.5)
rate = 0.5
print(player.minimum_rate())
print(player.rate())

A_PIN = 1
B_PIN = 16
gpio = gaugette.gpio.GPIO()
encoder = gaugette.rotary_encoder.RotaryEncoder(gpio, A_PIN, B_PIN)
encoder.start()
#FIXME: weird issue where, while only comparing to delta of 1, decrease function somehow manages to decrease speed below 0.25 - possibly a timing issue?
try:
    while True:
        delta = encoder.get_cycles()
        print(delta)
        time.sleep(0.1)
except KeyboardInterrupt:
    player.quit()
    sys.exit()
class ScreenController:
	video_playlist = []
	player1 = None
	player2 = None
	index = None
	number_of_cycles = 0
	currentIndex = None
	nextIndex = None
	
	def __init__(self):
		self.video_playlist = [VideoFile(1, "/media/pi/TOSHIBA1/Apocalyptic.mp4"), VideoFile(2, "/media/pi/TOSHIBA1/ledtime.mp4"), VideoFile(3, "/media/pi/TOSHIBA1/DiscoLightsVidevo.mov")]
		self.index = 0
		self.currentIndex = 0
		self.nextIndex = self.currentIndex+1
		self.player_log = logging.getLogger("Player")	
	
	def setup_player_one(self):
		self.player1 = OMXPlayer(self.video_playlist[self.index].path, args='--win 0,0,1920,1080 --layer 2', dbus_name='orb.mpris.MediaPlayer2.omxplayer1', pause = True)
		self.player1.playEvent += lambda _: self.player_log.info(" 1 Play")
		self.player1.pauseEvent += lambda _: self.player_log.info("1 Pause")
		self.player1.stopEvent += lambda _: self.player_log.info("1 Stop")
		
	def setup_player_two(self):
		self.player2 = OMXPlayer(self.video_playlist[self.index + 1].path,  args='--win 0,0,1920,1080 --layer 1', dbus_name='orb.mpris.MediaPlayer2.omxplayer2', pause = True)
		self.player2.playEvent += lambda _: self.player_log.info(" 2 Play")
		self.player2.pauseEvent += lambda _: self.player_log.info("2 Pause")
		self.player2.stopEvent += lambda _: self.player_log.info("2 Stop")
	
	def start_playlist(self):
		self.setup_player_one();
		self.setup_player_two();
		self.play_videos(True);
	
	def play_videos(self, init = False):
		# Load players with appropiate indexes	
		self.player1.load(self.video_playlist[self.currentIndex].path, True)
		self.player2.load(self.video_playlist[self.nextIndex].path, True)
		
		self.player1.set_alpha(255)
		self.player2.set_alpha(255)
		# Play for total duration - 1 second	
		self.player1.play()
		sleep(self.player1.duration()-1)
		
		# Fade player 
		self.fade_player_out(self.player1)
		
		# Play for total duration - 1 second	
		self.player2.play()
		sleep(self.player2.duration()-1)
		
		# Set new current and next index 
		self.reset_indexes()
		
		# Recursively call play videos
		self.number_of_cycles = self.number_of_cycles + 1
		if(self.number_of_cycles < 2):
			self.play_videos(False)
			
		# Fade player
		self.fade_player_out(self.player2)



		

	
	def reset_indexes(self): 

		
		if self.nextIndex + 1 >= len(self.video_playlist):
			self.currentIndex = 0
		else :
			self.currentIndex = self.nextIndex + 1
			
		if self.currentIndex + 1 >= len(self.video_playlist):
			self.nextIndex = 0
		else:
			self.nextIndex = self.currentIndex + 1
		
		print('AFTER CURRENT')
		print(self.currentIndex)
		print('AFTER NEXT')
		print(self.nextIndex)
		
	def fade_player_out(self, player):
		alpha = 200
		for x in range(6):
			sleep(0.1)
			alpha = alpha - 20
			player.set_alpha(alpha)
			
		alpha = 200
	
	def get_remaining_seconds(self, player):
		remaining_seconds = player.duration() - player.position()
		return remaining_seconds
             
	def is_nearly_finished(self, player):
		amountPlayed = 0
		if player.position() > 0:
			amountPlayed = player.position();
		percentPlayed = amountPlayed/player.duration()
		print(percentPlayed)
		if(percentPlayed > 0.9):
			return True;
		else:
			return False;
Exemplo n.º 11
0
import time
import gaugette.gpio
import gaugette.rotary_encoder
import os
from omxplayer.player import OMXPlayer
# from pathlib import Path
import sys

player = OMXPlayer("./output.mov", args=[])
player.set_alpha(150)
player.set_rate(0.5)
rate = 0.5
print(player.minimum_rate())
print(player.rate())

A_PIN = 1
B_PIN = 16
gpio = gaugette.gpio.GPIO()
encoder = gaugette.rotary_encoder.RotaryEncoder(gpio, A_PIN, B_PIN)
encoder.start()
#FIXME: weird issue where, while only comparing to delta of 1, decrease function somehow manages to decrease speed below 0.25 - possibly a timing issue?
try:
    while True:
        delta = encoder.get_cycles()
        if delta != 0:
            print "rotate %d" % delta
            print "rate: " + str(rate)
            if delta >= 5 and rate <= 1:
                player.action(2)
                rate = rate + 0.125
        else:
Exemplo n.º 12
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())