Files
pmomusic/pmomediarenderer
Eric Coissac cddd2afbd8 Implémentation du WebRenderer et améliorations du serveur
Ajout de la fonctionnalité WebRenderer permettant au navigateur de se connecter comme renderer UPnP.

- Implémentation du composant Vue useWebRenderer pour gérer la connexion WebSocket et le contrôle audio
- Ajout d'un proxy WebSocket dans Vite pour rediriger les requêtes /api/webrenderer/ws vers le serveur
- Modification du serveur pour permettre l'enregistrement dynamique de routes et extraction du JoinHandle
- Améliorations du parsing des métadonnées AVTransport pour gérer les types String et DIDLLite
- Ajout de la détection et du nommage des navigateurs dans le WebRenderer
- Mise à jour des dépendances avec tower 0.5.2
- Correction de la gestion des threads lors de l'arrêt du serveur HTTP
2026-02-21 00:16:05 +01:00
..

pmomediarenderer

Implémentation d'un MediaRenderer UPnP audio-only conforme à la spécification UPnP AV Architecture.

Description

Cette crate fournit un MediaRenderer UPnP qui permet de recevoir et lire du contenu audio depuis un serveur UPnP (MediaServer). Elle a été extraite de la crate pmoupnp pour permettre une meilleure modularité.

Architecture

Le MediaRenderer est composé de trois services obligatoires :

  • AVTransport : Contrôle de la lecture (play, pause, stop, seek, next, previous, etc.)
  • RenderingControl : Contrôle du volume et du mute
  • ConnectionManager : Gestion des connexions et des protocoles supportés

Device UPnP

  • Type : urn:schemas-upnp-org:device:MediaRenderer:1
  • Services : AVTransport:1, RenderingControl:1, ConnectionManager:1

Utilisation

use pmomediarenderer::MEDIA_RENDERER;
use pmoupnp::UpnpServer;

// Le device est déjà configuré avec tous ses services
let renderer = MEDIA_RENDERER.clone();

// Créer une instance du renderer
let instance = renderer.create_instance();

// Enregistrer le renderer sur un serveur UPnP
server.register_device(renderer).await?;

Dépendances

  • pmoupnp : Fournit l'infrastructure UPnP de base (devices, services, actions, state variables)
  • pmodidl : Pour la gestion des métadonnées DIDL-Lite
  • once_cell : Pour les initialisations lazy
  • bevy_reflect : Pour la réflexion et l'introspection

Services

AVTransport

Service de contrôle de transport audio conforme UPnP AVTransport:1. Gère la lecture de contenu audio.

Actions supportées :

  • SetAVTransportURI
  • SetNextAVTransportURI
  • Play
  • Pause
  • Stop
  • Seek
  • Next
  • Previous
  • GetTransportInfo
  • GetPositionInfo
  • GetMediaInfo
  • GetDeviceCapabilities
  • GetTransportSettings
  • GetCurrentTransportActions

RenderingControl

Service de contrôle de rendu conforme UPnP RenderingControl:1. Gère le volume et le mute.

Actions supportées :

  • GetVolume
  • SetVolume
  • GetMute
  • SetMute

ConnectionManager

Service de gestion des connexions conforme UPnP ConnectionManager:1. Gère les protocoles supportés.

Actions supportées :

  • GetProtocolInfo
  • GetCurrentConnectionIDs
  • GetCurrentConnectionInfo

Licence

Voir le fichier LICENSE à la racine du projet.