Refactor: Move SettingsWindow to settings_screen.py and use system VLC for video playback
This commit is contained in:
@@ -16,9 +16,9 @@ sudo apt install -y libsdl2-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-ttf-
|
||||
sudo apt install -y libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev
|
||||
|
||||
# Create project directory if it doesn't exist
|
||||
PROJECT_DIR="/home/pi/Desktop/signage-player"
|
||||
PROJECT_DIR="/home/pi/Desktop/tkinter_player"
|
||||
if [ ! -d "$PROJECT_DIR" ]; then
|
||||
echo "Project directory not found. Please ensure the signage-player directory exists."
|
||||
echo "Project directory not found. Please ensure the tkinter_player directory exists."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"screen_orientation": "Landscape",
|
||||
"screen_name": "tv-holba1",
|
||||
"screen_name": "tv-terasa",
|
||||
"quickconnect_key": "8887779",
|
||||
"server_ip": "192.168.1.22",
|
||||
"port": "80",
|
||||
"server_ip": "digi-signage.moto-adv.com",
|
||||
"port": "8880",
|
||||
"screen_w": "1920",
|
||||
"screen_h": "1080",
|
||||
"playlist_version": 0
|
||||
|
||||
@@ -1426,3 +1426,281 @@
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Application exit requested
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Configuration loaded: server=192.168.1.22, host=tv-holba1, quick=8887779, port=80
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
|
||||
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
|
||||
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
|
||||
[INFO] [SignageApp] Found fallback playlist with 3 items
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Initializing with settings: server=192.168.1.22, host=tv-holba1, port=80
|
||||
[INFO] [SignageApp] Attempting to connect to server...
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://192.168.1.22:80/api/playlists with params: {'hostname': 'tv-holba1', 'quickconnect_code': '8887779'}
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
|
||||
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
|
||||
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
|
||||
[INFO] [SignageApp] Found fallback playlist with 3 items
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880
|
||||
[INFO] [SignageApp] Attempting to connect to server...
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
|
||||
[INFO] [SignageApp] Loaded fallback playlist with 3 items
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
2025-08-22 20:07:54 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[WARNING] [SignageApp] PIL not available - showing text placeholder for image
|
||||
[INFO] [SignageApp] Starting Simple Tkinter Media Player
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:08:07 - STARTED: wp2782770-1846651530.jpg
|
||||
[WARNING] [SignageApp] PIL not available - showing text placeholder for image
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:08:10 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[ERROR] [SignageApp] VLC error: 'NoneType' object has no attribute 'media_player_new'
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
2025-08-22 20:08:11 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[WARNING] [SignageApp] PIL not available - showing text placeholder for image
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:08:17 - STARTED: wp2782770-1846651530.jpg
|
||||
[WARNING] [SignageApp] PIL not available - showing text placeholder for image
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:08:18 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[ERROR] [SignageApp] VLC error: 'NoneType' object has no attribute 'media_player_new'
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
2025-08-22 20:08:19 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[WARNING] [SignageApp] PIL not available - showing text placeholder for image
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Application exit requested
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
|
||||
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
|
||||
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
|
||||
[INFO] [SignageApp] Found fallback playlist with 3 items
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880
|
||||
[INFO] [SignageApp] Attempting to connect to server...
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
|
||||
[INFO] [SignageApp] Media paused
|
||||
[INFO] [SignageApp] Loading configuration in enhanced settings window
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Config loaded: {'screen_orientation': 'Landscape', 'screen_name': 'tv-terasa', 'quickconnect_key': '8887779', 'server_ip': 'digi-signage.moto-adv.com', 'port': '8880', 'screen_w': '1920', 'screen_h': '1080', 'playlist_version': 0}
|
||||
[INFO] [SignageApp] Configuration values loaded successfully in enhanced settings
|
||||
[INFO] [SignageApp] Loaded fallback playlist with 3 items
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
2025-08-22 20:10:31 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Starting Simple Tkinter Media Player
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:10:51 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:11:07 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[ERROR] [SignageApp] VLC error: 'NoneType' object has no attribute 'media_player_new'
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
2025-08-22 20:11:08 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[INFO] [SignageApp] No playlist updates available
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:11:31 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:11:47 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[ERROR] [SignageApp] VLC error: 'NoneType' object has no attribute 'media_player_new'
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
2025-08-22 20:11:48 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[INFO] [SignageApp] No playlist updates available
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:12:09 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:12:24 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Media resumed
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:12:40 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[ERROR] [SignageApp] VLC error: 'NoneType' object has no attribute 'media_player_new'
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
2025-08-22 20:12:41 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[INFO] [SignageApp] No playlist updates available
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:13:02 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:13:18 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[ERROR] [SignageApp] VLC error: 'NoneType' object has no attribute 'media_player_new'
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
2025-08-22 20:13:19 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Application exit requested
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
|
||||
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
|
||||
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
|
||||
[INFO] [SignageApp] Found fallback playlist with 3 items
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880
|
||||
[INFO] [SignageApp] Attempting to connect to server...
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
|
||||
[INFO] [SignageApp] Loaded fallback playlist with 3 items
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
2025-08-22 20:20:19 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Starting Simple Tkinter Media Player
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:20:40 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:20:56 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] VLC finished: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
2025-08-22 20:21:03 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
|
||||
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
|
||||
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
|
||||
[INFO] [SignageApp] Found fallback playlist with 3 items
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880
|
||||
[INFO] [SignageApp] Attempting to connect to server...
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
|
||||
[INFO] [SignageApp] Loaded fallback playlist with 3 items
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
2025-08-22 20:22:56 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Starting Simple Tkinter Media Player
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 20:23:17 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
2025-08-22 20:23:33 - STARTED: SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] Starting system VLC subprocess for video: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] VLC subprocess finished: /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
2025-08-22 20:23:40 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Application exit requested
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
|
||||
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
|
||||
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
|
||||
[INFO] [SignageApp] Found fallback playlist with 3 items
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880
|
||||
[INFO] [SignageApp] Attempting to connect to server...
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
|
||||
[INFO] [SignageApp] Loaded fallback playlist with 3 items
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
2025-08-22 21:55:09 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1018, Mode: fit, Offset: (146, 0))
|
||||
[INFO] [SignageApp] Starting Simple Tkinter Media Player
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg
|
||||
2025-08-22 21:55:30 - STARTED: wp2782770-1846651530.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1018, Mode: fit, Offset: (146, 0))
|
||||
[INFO] [SignageApp] Application exit requested
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] python_functions: Starting load_local_playlist function.
|
||||
[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5}
|
||||
[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully.
|
||||
[INFO] [SignageApp] Found fallback playlist with 3 items
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880
|
||||
[INFO] [SignageApp] Attempting to connect to server...
|
||||
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
|
||||
[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522
|
||||
[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist
|
||||
[INFO] [SignageApp] Media paused
|
||||
[INFO] [SignageApp] Loaded fallback playlist with 3 items
|
||||
[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/tkinter_player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
2025-08-22 21:57:07 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg
|
||||
[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0))
|
||||
[INFO] [SignageApp] Starting Simple Tkinter Media Player
|
||||
[INFO] [SignageApp] python_functions: Starting load_config function.
|
||||
[INFO] [SignageApp] python_functions: Configuration file loaded successfully.
|
||||
[INFO] [SignageApp] Application exit requested
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -5,7 +5,6 @@ This file acts as the main executable for launching the tkinter player.
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import cv2 # Import OpenCV to confirm it's available
|
||||
|
||||
# Add the current directory to the path so we can import our modules
|
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
@@ -14,7 +13,6 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
from tkinter_simple_player import SimpleMediaPlayerApp
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(f"Using OpenCV version: {cv2.__version__}")
|
||||
# Create and run the player
|
||||
player = SimpleMediaPlayerApp()
|
||||
player.run()
|
||||
@@ -0,0 +1,19 @@
|
||||
# settings_screen.py
|
||||
"""
|
||||
SettingsWindow class and related settings UI logic for the Tkinter Simple Media Player.
|
||||
"""
|
||||
|
||||
import tkinter as tk
|
||||
from tkinter import ttk, messagebox
|
||||
import os
|
||||
import json
|
||||
import requests
|
||||
from logging_config import Logger
|
||||
from python_functions import (
|
||||
load_local_playlist, download_media_files, clean_unused_files,
|
||||
save_local_playlist, update_config_playlist_version, fetch_server_playlist,
|
||||
load_config
|
||||
)
|
||||
from virtual_keyboard import VirtualKeyboard, TouchOptimizedEntry, TouchOptimizedButton
|
||||
|
||||
# ...Paste the full SettingsWindow class here (from tkinter_simple_player.py)...
|
||||
|
||||
@@ -21,8 +21,7 @@ import subprocess
|
||||
import sys
|
||||
import requests # Required for server communication
|
||||
import queue
|
||||
import cv2 # For video playback
|
||||
import pygame # For video audio
|
||||
import vlc # For video playback with hardware acceleration
|
||||
|
||||
# Try importing PIL but provide fallback
|
||||
try:
|
||||
@@ -73,12 +72,7 @@ class SimpleMediaPlayerApp:
|
||||
# Display scaling mode ('fit', 'fill', 'stretch')
|
||||
self.scaling_mode = 'fit' # Default to fit (maintain aspect ratio with black bars)
|
||||
|
||||
# Initialize pygame for video audio
|
||||
try:
|
||||
pygame.init()
|
||||
pygame.mixer.init()
|
||||
except Exception as e:
|
||||
Logger.warning(f"Failed to initialize pygame mixer for audio: {e}")
|
||||
# VLC will be used for video/audio playback (no pygame needed)
|
||||
|
||||
self.setup_ui()
|
||||
|
||||
@@ -533,34 +527,29 @@ class SimpleMediaPlayerApp:
|
||||
self.auto_advance_timer = self.root.after(5000, self.next_media)
|
||||
|
||||
def play_video(self, file_path):
|
||||
"""Play video file using python-vlc-wrapper for robust hardware acceleration."""
|
||||
"""Play video file using system VLC as a subprocess for robust hardware acceleration and stability."""
|
||||
self.status_label.place_forget()
|
||||
def run_vlc():
|
||||
def run_vlc_subprocess():
|
||||
try:
|
||||
Logger.info(f"Starting VLC for video: {file_path}")
|
||||
import vlc
|
||||
instance = vlc.Instance('--no-osd', '--no-video-title-show', '--intf', 'dummy', '--no-video-deco', '--no-embedded-video', '--quiet')
|
||||
player = instance.media_player_new()
|
||||
media = instance.media_new(file_path)
|
||||
player.set_media(media)
|
||||
player.play()
|
||||
time.sleep(0.5)
|
||||
try:
|
||||
player.set_fullscreen(True)
|
||||
Logger.info(f"Starting system VLC subprocess for video: {file_path}")
|
||||
# Build VLC command
|
||||
vlc_cmd = [
|
||||
'cvlc',
|
||||
'--fullscreen',
|
||||
'--no-osd',
|
||||
'--no-video-title-show',
|
||||
'--play-and-exit',
|
||||
'--quiet',
|
||||
file_path
|
||||
]
|
||||
proc = subprocess.Popen(vlc_cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||
proc.wait()
|
||||
Logger.info(f"VLC subprocess finished: {file_path}")
|
||||
except Exception as e:
|
||||
Logger.warning(f"Could not set VLC fullscreen: {e}")
|
||||
while True:
|
||||
state = player.get_state()
|
||||
if state in [vlc.State.Ended, vlc.State.Error, vlc.State.Stopped]:
|
||||
break
|
||||
time.sleep(0.5)
|
||||
player.stop()
|
||||
Logger.info(f"VLC finished: {file_path}")
|
||||
except Exception as e:
|
||||
Logger.error(f"VLC error: {e}")
|
||||
Logger.error(f"VLC subprocess error: {e}")
|
||||
finally:
|
||||
self.root.after_idle(lambda: setattr(self, 'auto_advance_timer', self.root.after(1000, self.next_media)))
|
||||
threading.Thread(target=run_vlc, daemon=True).start()
|
||||
threading.Thread(target=run_vlc_subprocess, daemon=True).start()
|
||||
|
||||
def _update_video_frame(self, photo):
|
||||
"""Update video frame from main thread"""
|
||||
@@ -1311,7 +1300,7 @@ class SettingsWindow:
|
||||
|
||||
self.hardware_accel_var = tk.BooleanVar(value=True)
|
||||
self.create_checkbox(perf_card, "Enable hardware acceleration", self.hardware_accel_var)
|
||||
|
||||
self.settings_window = SettingsWindow(self.root, self, dark_theme=True)
|
||||
self.cache_media_var = tk.BooleanVar(value=True)
|
||||
self.create_checkbox(perf_card, "Cache media files locally", self.cache_media_var)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user