## StreamPlayer Desktop (Windows) Este branch contiene únicamente la versión de escritorio desarrollada con **.NET 8 + Avalonia**. Replica todas las funciones del APK Android original (resolución de streams ofuscados, verificación remota de dispositivos, control de actualizaciones y reproducción protegida) pero genera un `.exe` listo para Windows. ### Estructura ``` windows/StreamPlayer.Desktop/ ├── App.axaml / App.axaml.cs ├── Program.cs ├── AppVersion.cs ├── Models/ # ChannelSection, LiveEvent, UpdateInfo, etc. ├── Services/ # StreamUrlResolver, UpdateService, DeviceRegistryService, WindowsDnsService… ├── ViewModels/ # MainWindowViewModel con bloqueo previo y refrescos ├── Views/ # MainWindow, PlayerWindow (LibVLC), diálogos de update/bloqueo └── StreamPlayer.Desktop.csproj ``` ### Requisitos - .NET SDK 8.0 - Windows 10/11 x64 - Visual Studio 2022 (o `dotnet` CLI) con workloads “.NET desktop”. - VLC runtimes incluidos vía `VideoLAN.LibVLC.Windows`. ### Cómo compilar ```bash git checkout windows-only cd windows/StreamPlayer.Desktop dotnet restore dotnet build -c Release # Para distribuir: dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true ``` El `.exe` resultante queda en `windows/StreamPlayer.Desktop/bin/Release/net8.0/win-x64/publish/`. ### Características clave - **Resolución de stream**: `Services/StreamUrlResolver.cs` analiza el JavaScript ofuscado y reconstruye el HLS real (idéntico al app móvil). - **Reproducción**: `Views/PlayerWindow` usa LibVLC con los mismos headers/User-Agent del APK para evitar bloqueos de origen. - **Verificación remota**: `DeviceRegistryService` sincroniza con tu dashboard y bloquea toda la UI hasta que el servidor permita el dispositivo. - **Actualizaciones forzadas**: `UpdateService` consulta las releases de Gitea y puede abrir el browser o descargar la nueva versión. - **DNS de Google**: `WindowsDnsService` fuerza 8.8.8.8 / 8.8.4.4 solicitando elevación (UAC); si el usuario rechaza, se muestra el mensaje para configurar manualmente antes de iniciar el player. ### Uso 1. Compila o publica el `.exe`. 2. Ejecuta una vez como administrador para que el cambio de DNS quede aplicado. 3. Configura tus endpoints (`AppVersion.DeviceRegistryUrl`, `LatestReleaseApi`) si necesitas apuntar a otros servicios. 4. Distribuye el `.exe` y sube releases/manifest igual que con el APK. Este branch **no** incluye ningún archivo Android; es solo el código fuente de la versión Windows. Para la versión móvil sigue usando `main`.