Files
pmomusic/Blackboard/Todo/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.3 KiB

** Ce travail devra être réalisé en suivant scrupuleusement les consignes listées dans le fichier @Rules_optimal.md **

Cette modification cible la cratte pmocontrol uniquement

Les musiques Renderer, Disposent maintenant d'une méthode leur permettant de savoir s'ils sont en train de diffuser une webradio via leur méthode is_playing_a_stream.

Il faut donc que dans la méthode poll_and_emit_changes On fait ce qui est nécessaire pour envoyer des données de position et de durée de track corrigée si l'on a is_playing_a_stream à vrai.

Si is_playing_a_stream à vrai:

  • Maintenir à jour la valeur track_start_time de la classe MusicRenderer En la mettant égale à now de metadata.
  • Loguer cet événement au niveau info.
  • Extraire la durée du morceau depuis les métadonnées fournies par la structure de position.
    • Si la durée est disponible:
      • Utilisez cette donnée pour la pousser sur le bus des événements.
      • calculer la position dans le flux comme la différence entre now et track_start_time.
    • Sinon: Envoyer zéro pour la position et none pour la duration.
  • Sinon, transmettre les données fournies comme actuellement.