Files
pmomusic/Blackboard/Report/patch_position_info_for_stream.md
Eric Coissac 5440e72afb Corriger les informations de position pour les flux continus
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.
2026-01-31 14:26:49 +01:00

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

  1. 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_time est déjà maintenu à jour par la logique existante lors des changements de métadonnées