From 60d4dbae57def1372591ccf1b3c2dd5935670afa Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Sat, 6 Dec 2025 10:00:38 +0100 Subject: [PATCH] feat: Implement a video player screen using Chewie for live, VOD, and series streams with EPG overlay. --- lib/features/iptv/screens/player_screen.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/features/iptv/screens/player_screen.dart b/lib/features/iptv/screens/player_screen.dart index 8fc4b99..bd8aa09 100644 --- a/lib/features/iptv/screens/player_screen.dart +++ b/lib/features/iptv/screens/player_screen.dart @@ -45,8 +45,18 @@ class _PlayerScreenState extends ConsumerState { Future _initializePlayer() async { try { + // Validate playlist before proceeding + if (widget.playlist.dns.isEmpty || + widget.playlist.username.isEmpty || + widget.playlist.password.isEmpty) { + throw Exception('Invalid playlist configuration: missing credentials'); + } + final xtreamService = ref.read(xtreamServiceProvider(widget.playlist)); + // Explicitly ensure playlist is set (defensive programming) + xtreamService.setPlaylist(widget.playlist); + // Generate stream URL based on type late String streamUrl; switch (widget.streamType) { @@ -66,6 +76,9 @@ class _PlayerScreenState extends ConsumerState { ); break; } + + // Debug: Print stream URL to console + debugPrint('PlayerScreen: Initializing stream URL: $streamUrl'); _videoPlayerController = VideoPlayerController.networkUrl( Uri.parse(streamUrl),