Refactorisation des nœuds audio pour utiliser boxed()
Cette mise à jour refactorise les nœuds audio pour utiliser la méthode `boxed()` lors de l'enregistrement des enfants, améliorant ainsi la cohérence et la lisibilité du code. Les méthodes `make()` sont ajoutées pour faciliter la création d'instances boxées des nœuds, et les exemples sont mis à jour en conséquence.
This commit is contained in:
@@ -70,8 +70,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let sink = FlacFileSink::new(output_path);
|
||||
|
||||
// Construire la chaîne: source → converter → sink
|
||||
converter.register(Box::new(sink));
|
||||
source.register(converter);
|
||||
converter.register(sink.boxed());
|
||||
source.register(converter.boxed());
|
||||
|
||||
// Créer un token d'arrêt pour contrôle manuel si besoin
|
||||
let stop_token = CancellationToken::new();
|
||||
|
||||
@@ -38,7 +38,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let sink = FlacFileSink::new(output_path);
|
||||
|
||||
// Enregistrer le sink comme enfant de la source
|
||||
source.register(Box::new(sink));
|
||||
source.register(sink.boxed());
|
||||
|
||||
// Créer un token d'arrêt pour contrôle manuel si besoin
|
||||
let stop_token = CancellationToken::new();
|
||||
|
||||
@@ -34,7 +34,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let sink = AudioSink::new();
|
||||
|
||||
// Connecter la source au sink
|
||||
source.register(Box::new(sink));
|
||||
source.register(sink.boxed());
|
||||
|
||||
println!("Démarrage de la lecture...");
|
||||
println!("Appuyez sur Ctrl+C pour arrêter");
|
||||
|
||||
@@ -35,22 +35,16 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
println!("Lecture de: {}", file_path);
|
||||
println!("Sample rate cible: {} Hz", target_sample_rate);
|
||||
|
||||
// Créer la source audio
|
||||
let mut source = FileSource::new(file_path).await?;
|
||||
|
||||
// Créer le nœud de resampling
|
||||
let mut resampler = ResamplingNode::new(target_sample_rate);
|
||||
|
||||
// Créer le nœud de conversion vers I24
|
||||
let mut converter = ToI24Node::new();
|
||||
|
||||
// Créer le sink audio avec volume à 80%
|
||||
let sink = AudioSink::with_volume(0.8);
|
||||
|
||||
// Construire le pipeline: Source → Resampler → Converter → Sink
|
||||
source.register(Box::new(resampler));
|
||||
resampler.register(Box::new(converter));
|
||||
converter.register(Box::new(sink));
|
||||
let sink = AudioSink::new();
|
||||
let mut converter = ToI24Node::new();
|
||||
converter.register(sink.boxed());
|
||||
|
||||
let mut resampler = ResamplingNode::new(target_sample_rate);
|
||||
resampler.register(converter.boxed());
|
||||
|
||||
let mut source = FileSource::new(file_path);
|
||||
source.register(resampler.boxed());
|
||||
|
||||
println!(
|
||||
"Pipeline créé: FileSource → Resampling({} Hz) → ToI24 → AudioSink",
|
||||
|
||||
Reference in New Issue
Block a user