This commit is contained in:
2025-07-19 03:45:41 +02:00
parent 21164df8cd
commit a1f829e2e6
10 changed files with 345 additions and 49 deletions

View File

@@ -2,8 +2,8 @@ use std::sync::Arc;
use std::sync::atomic::{AtomicBool, Ordering};
use std::thread::JoinHandle;
use cpal::{default_host, BufferSize, Device, SampleRate, Stream, StreamConfig, SupportedStreamConfig};
use cpal::traits::{DeviceTrait, HostTrait};
use crate::domain::event::EventBus;
use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
use crate::domain::event::{Event, EventBus};
use crate::utils::real_time_event::RealTimeEvent;
#[derive(Clone)]
@@ -80,21 +80,26 @@ impl AudioPlayback {
}
pub async fn start(&mut self) {
}
pub async fn stop(&mut self) {
self.running.store(false, std::sync::atomic::Ordering::SeqCst);
let stream_running = self.running.clone();
let event_bus = self.event_bus.clone();
// stream cpal
println!("Setting up audio playback stream...");
let stream_running = self.running.clone();
let stream = self.speaker.build_stream(move |data, _| {
if !stream_running.load(Ordering::Relaxed){
return;
}
// aller récupérer 1920 sur un buffer
// écrire le contenu dans data
let _ = event_bus.emit(Event::PlaybackTick);
});
stream.play().unwrap();
self.stream = Some(stream);
println!("Audio playback stream started");
}
pub async fn stop(&mut self) {
self.running.store(false, std::sync::atomic::Ordering::SeqCst);
}
}