2.0 KiB
2.0 KiB
TV Player - Multi-Platform IPTV Application
A comprehensive .NET application for streaming IPTV content across multiple platforms using the MAUI cross-platform framework and WPF for Windows.
Project Overview
This project provides two implementations:
- WPF (Windows) - Primary Windows desktop application
- MAUI (Multi-platform) - Cross-platform support for Android, Windows, and macOS
Both implementations share common business logic for M3U playlist parsing and EPG (Electronic Program Guide) handling.
Architecture
Shared Components
ViewModels (MVVM Pattern)
- ObservableViewModelBase: Base class implementing INotifyPropertyChanged
- TVPlayerViewModel: Central application state (Lazy singleton)
- MainViewModel: Main UI logic
- PlayerViewModel: Video playback management
- ProgramViewModel: Program/channel selection
- SettingsViewModel: User preferences
Services & Utilities
- M3UParser: Parses M3U playlists using regex
- M3UInfo: Represents individual M3U playlist entry
- ProgramsData: Manages playlist and EPG data via Reactive Extensions
- PlaylistSettings: Configurable settings for URLs and cache behavior
Data Models
- GroupInfo: Channel grouping information
- ProgramGuide: EPG channel data
- ProgramInfo: Individual program schedule entry
Platform-Specific Code
WPF Implementation
TV Player WPF/
├── ViewModels/
│ ├── MainViewModel.cs
│ ├── PlayerViewModel.cs
│ ├── SettingsViewModel.cs
│ └── ...
├── PlaylistWorker/ # Shared parsing logic
├── MainWindow.xaml
├── VideoPlayer.xaml
└── Assets/ # Styles and resources
Key Features:
- Full Windows desktop experience with keyboard shortcuts
- Fullscreen support
- Persistent settings (Windows Registry/AppData)
- Window state management
- Responsive UI with XAML styling
Last Updated: March 22, 2026 Project Status: Stable Main Implementation: WPF for Windows