Implémentation de la reconnexion stable avec synchronisation d'état
Cette mise à jour permet une reconnexion stable du renderer Web après un reload de page, en conservant l'état audio (URI, volume, lecture en cours). - Ajout d'un identifiant d'instance stable (UUID) dans le navigateur pour retrouver le même renderer UPnP - Implémentation d'un mécanisme de synchronisation d'état (StateSync) lors des reconnexions - Mise à jour du système de sender partagé (SharedSender) pour permettre le remplacement des connexions WebSocket - Correction des handlers UPnP pour utiliser le nouveau type SharedSender - Amélioration de la gestion des erreurs d'autoplay dans le moteur audio - Mise à jour du numéro de version vers 0.3.21
This commit is contained in:
@@ -10,6 +10,18 @@ pub enum ServerMessage {
|
||||
token: String,
|
||||
renderer_info: RendererInfo,
|
||||
},
|
||||
/// Envoyé après SessionCreated lors d'une reconnexion pour resynchroniser
|
||||
/// l'état audio du navigateur (URI courante, état de lecture, etc.).
|
||||
StateSync {
|
||||
current_uri: Option<String>,
|
||||
current_metadata: Option<String>,
|
||||
next_uri: Option<String>,
|
||||
next_metadata: Option<String>,
|
||||
playback_state: PlaybackState,
|
||||
position: Option<String>,
|
||||
volume: u16,
|
||||
mute: bool,
|
||||
},
|
||||
Command {
|
||||
action: TransportAction,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
@@ -62,6 +74,9 @@ pub enum ClientMessage {
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct BrowserCapabilities {
|
||||
/// Identifiant stable de l'instance navigateur (UUID stocké en localStorage).
|
||||
/// Permet de réutiliser le même renderer UPnP après un reload de page.
|
||||
pub instance_id: String,
|
||||
pub user_agent: String,
|
||||
pub supported_formats: Vec<String>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user