further to check : showing of the meniu on player ui and player ui to run in fullscreen

This commit is contained in:
2025-08-24 00:07:53 +03:00
parent da91677f5b
commit 8f64de240b
5 changed files with 223 additions and 5 deletions

View File

@@ -11,25 +11,43 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from logging_config import Logger
from player_app import SimpleMediaPlayerApp
from player_ui import PlayerUI
from media_playback_controller import MediaPlaybackController
from splash_screen import SplashScreen
from playlist_manager import PlaylistManager
from threading import Thread
if __name__ == "__main__":
import tkinter as tk
root = tk.Tk()
# Play splash screen first, then start player
playlist_manager = PlaylistManager()
playlist_manager.fetch_playlist() # Start fetching playlist in parallel with splash
intro_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'resources', 'intro1.mp4')
preload_result = {}
def preload_first_media(playlist):
if playlist and len(playlist) > 0:
first_item = playlist[0]
file_path = first_item.get('url', '')
if file_path and os.path.exists(file_path):
try:
from PIL import Image
if file_path.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp', '.gif')):
img = Image.open(file_path)
img.load() # Force decode
preload_result['image'] = img
except Exception as e:
Logger.warning(f"[MAIN] Preload failed: {e}")
Logger.info(f"[MAIN] About to show splash screen: {intro_path}")
def start_player():
Logger.info("[MAIN] Splash finished, waiting for playlist...")
playlist = playlist_manager.wait_for_playlist()
Logger.info(f"[MAIN] Playlist loaded: {playlist}")
player = SimpleMediaPlayerApp(root)
player.playlist = playlist or []
player.run()
Thread(target=preload_first_media, args=(playlist,), daemon=True).start()
ui = PlayerUI(root)
playback = MediaPlaybackController(app=None, ui=ui)
playback.set_playlist(playlist or [])
playback.play_current_media()
Logger.info("[MAIN] Player UI and playback started.")
splash = SplashScreen(root, intro_path, duration=10)
splash.show(on_finish=start_player)
Logger.info("[MAIN] splash.show() called, entering mainloop...")

View File

@@ -50,6 +50,7 @@ class SimpleMediaPlayerApp:
self.playlist = []
self.current_index = 0
self.scaling_mode = 'fit'
self.auto_advance_timer = None
self.hide_controls_timer = None
self.settings_window = None
# UI extraction
@@ -173,6 +174,12 @@ class SimpleMediaPlayerApp:
def cancel_timers(self):
self.playback.cancel_timers()
def show_no_content_message(self):
self.playback.show_no_content_message()
def log_event(self, file_name, event):
self.playback.log_event(file_name, event)
def show_controls(self):
if self.ui.control_frame:
self.ui.control_frame.place(relx=0.98, rely=0.98, anchor='se')