Cette modification corrige le calcul de la position et de la durée pour les flux continus (webradio) en ajustant la méthode `poll_and_emit_changes()` dans `pmocontrol`. Elle détecte maintenant les flux via `is_playing_a_stream()`, extrait la durée depuis les métadonnées DIDL, et calcule la position relative basée sur `track_start_time`. Les valeurs par défaut (zéro pour la position, none pour la durée) sont utilisées si aucune durée n'est disponible. Les fichiers modifiés incluent `musicrenderer.rs`, `CurrentTrack.vue` et `useRenderers.ts` pour assurer une gestion cohérente des données de position et de durée.
1.5 KiB
1.5 KiB
Rapport : Patch des informations de position pour les flux continus
Résumé
Modification de la méthode poll_and_emit_changes() dans la crate pmocontrol pour corriger les données de position et durée lorsqu'un renderer diffuse un flux continu (webradio). La méthode détecte maintenant si un flux est en cours via is_playing_a_stream() et applique un traitement spécifique : extraction de la durée depuis les métadonnées DIDL, et calcul de la position relative depuis track_start_time (qui est déjà maintenu à jour lors des changements de métadonnées). Si aucune durée n'est disponible, la position et la durée sont mises à zéro/none.
Fichiers modifiés
pmocontrol/src/music_renderer/musicrenderer.rs- Modification de la méthode
poll_and_emit_changes()pour patcher les informations de position lors de la détection d'un flux continu - Ajout du logging au niveau info lors de la détection d'un flux continu
- Extraction conditionnelle de la durée depuis les métadonnées DIDL pour les streams
- Calcul de la position relative basé sur
track_start_time(différence entre now et track_start_time) - Retour de valeurs par défaut (zéro pour position, none pour duration) si aucune durée n'est disponible dans les métadonnées
- Préservation de la logique existante pour les médias réguliers (non-streams)
- Note :
track_start_timeest déjà maintenu à jour par la logique existante lors des changements de métadonnées
- Modification de la méthode