init
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user