Files
pmomusic/Blackboard/Done/bug_play_single_track.md
Eric Coissac 41a4f0eaea Fix bug play single track Qobuz
Corrige le bug empêchant la lecture d'un track Qobuz individuel depuis le ServerDrawer.

- Implémente `get_item()` dans `QobuzSource` pour retourner des URLs HTTP valides au lieu de URLs symboliques
- Rend `format_duration()` publique dans `pmoqobuz/src/didl.rs`
- Ajoute le logging dans `pmocontrol/src/pmoserver_ext.rs` pour suivre le flux de lecture
- Améliore la gestion des objets dans `pmocontrol/src/pmoserver_ext.rs` pour distinguer les conteneurs des éléments
2026-01-17 08:36:23 +01:00

1.3 KiB

Synthèse : bug_play_single_track

Tâche originale

Crates concernées : pmocontrol, pmoapp/webapp, pmoqobuz

Problème : Lorsque dans le ServerDrawer on clique sur le bouton de lecture d'un item simple Qobuz, rien ne se produit.

Comportement attendu :

  • Arrêt éventuel du renderer concerné
  • Effacement et détachement de sa queue de lecture
  • Ajout de la piste sélectionnée dans la queue de lecture
  • Lancement de la lecture

Résolution

Cause racine

QobuzSource n'implémentait pas get_item(). Quand le ContentDirectory recevait un BrowseMetadata sur un track individuel (qobuz:track:123), il ne pouvait pas retourner les métadonnées avec une URL HTTP valide.

  • Albums : get_or_create_album_playlist_items() génère des URLs HTTP via le cache (http://base_url/audio/flac/QOBUZ:123)
  • Tracks individuels : URL symbolique qobuz://track/123 non jouable par le renderer

Solution

Implémentation de get_item() dans QobuzSource utilisant add_track_lazy() pour enregistrer le track dans le cache et retourner une URL HTTP absolue.

Fichiers modifiés

Fichier Modification
pmoqobuz/src/source.rs Ajout de get_item() dans l'impl MusicSource
pmoqobuz/src/didl.rs format_duration() rendue publique

Statut

Résolu - Testé et validé.