feat: Add play_and_cache example for Radio Paradise streaming and playback

Crée un nouvel exemple complet qui démontre l'utilisation de tout le pipeline:
- Téléchargement d'un bloc Radio Paradise
- Cache FLAC via FlacCacheSink
- Playlist alimentée automatiquement
- Lecture en temps réel via PlaylistSource et AudioSink

Architecture à deux pipelines :
Pipeline 1 (Download & Cache):
  RadioParadiseStreamSource → FlacCacheSink (avec playlist abonnée)

Pipeline 2 (Playback):
  PlaylistSource (lit la playlist) → AudioSink (joue l'audio)

Les deux pipelines s'exécutent en parallèle, permettant la lecture pendant le
téléchargement.

Modifications:
- Ajout pmoaudio-ext avec feature playlist dans pmoparadise
- Nouvelle feature "full" combinant pmoaudio + pmoaudio-ext
- Logs détaillés à tous les niveaux (DEBUG)

Usage: cargo run --example play_and_cache --features full -- <channel_id>
This commit is contained in:
Claude
2025-11-05 15:49:23 +00:00
parent ff4ebcdfa5
commit 6b3851de19
3 changed files with 267 additions and 0 deletions

View File

@@ -51,6 +51,9 @@ symphonia = { version = "0.5", features = ["all"] }
# Audio decoding - claxon for FLAC streaming
claxon = "0.4"
# pmoaudio-ext with playlist support (optional for examples)
pmoaudio-ext = { path = "../pmoaudio-ext", optional = true, features = ["playlist"] }
# Common music source traits
pmosource = { path = "../pmosource" }
@@ -87,6 +90,8 @@ pmoconfig = ["dep:pmoconfig"]
cache = []
# Active le support pmoaudio node (RadioParadiseStreamSource)
pmoaudio = ["dep:pmoaudio", "dep:pmoflac", "dep:pmometadata", "dep:futures-util"]
# Active le support complet avec playlist (pour les exemples avancés)
full = ["pmoaudio", "dep:pmoaudio-ext"]
[dev-dependencies]
# Tests