feat: support reading recordings, address some warnings
This commit is contained in:
15
src/call.rs
15
src/call.rs
@@ -1,20 +1,17 @@
|
||||
use crate::{
|
||||
OneToManyUniqueBTreeMap, UserDataManager,
|
||||
option_ext::OptionExt as _,
|
||||
recording_data::{Clip, Recording, RecordingDataManager},
|
||||
recording_data::{Clip, Recording, RecordingData, RecordingDataManager},
|
||||
user_capnp::user::Consent,
|
||||
user_data::RECORD_IF_CONSENT_UNSPECIFIED,
|
||||
};
|
||||
use async_trait::async_trait;
|
||||
use futures::FutureExt;
|
||||
use hound::{SampleFormat, WavSpec};
|
||||
use opendal::Operator;
|
||||
use songbird::{
|
||||
CoreEvent, Event, EventContext, EventHandler, Songbird,
|
||||
driver::{Channels, SampleRate},
|
||||
};
|
||||
use std::{
|
||||
io::Cursor,
|
||||
sync::{Arc, Mutex},
|
||||
time::Instant,
|
||||
};
|
||||
@@ -137,11 +134,17 @@ impl EventHandler for Handler {
|
||||
tracing::info!("going to write the audio shortly");
|
||||
|
||||
let recording_data_manager = self.recording_data_manager.clone();
|
||||
let pcm = pcm.clone();
|
||||
let samples = pcm.clone();
|
||||
|
||||
let recording_data = RecordingData {
|
||||
channels,
|
||||
sample_rate,
|
||||
samples,
|
||||
};
|
||||
|
||||
tokio::spawn(async move {
|
||||
recording_data_manager
|
||||
.write(&recording, &pcm, sample_rate, channels)
|
||||
.write(&recording, recording_data)
|
||||
.await
|
||||
.expect("TODO");
|
||||
tracing::info!(?recording, "successfully wrote the audio!");
|
||||
|
||||
Reference in New Issue
Block a user