55 lines
2.6 KiB
Markdown
55 lines
2.6 KiB
Markdown
## 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`.
|