pub struct RealTimeAudioStream { /* private fields */ }Expand description
Real-time audio streaming interface
Implementations§
Source§impl RealTimeAudioStream
impl RealTimeAudioStream
Sourcepub fn new(
stream_config: RealTimeStreamConfig,
buffer_config: BufferConfig,
) -> Result<Self>
pub fn new( stream_config: RealTimeStreamConfig, buffer_config: BufferConfig, ) -> Result<Self>
Create a new real-time audio stream
Sourcepub fn write_audio(&self, audio_data: &AudioData) -> Result<()>
pub fn write_audio(&self, audio_data: &AudioData) -> Result<()>
Write audio data to the stream buffer
Sourcepub fn write_samples(&self, samples: &[f32]) -> Result<()>
pub fn write_samples(&self, samples: &[f32]) -> Result<()>
Write raw audio samples to the stream buffer
Sourcepub fn get_buffer_fill_level(&self) -> Result<f32>
pub fn get_buffer_fill_level(&self) -> Result<f32>
Get buffer fill level (0.0 to 1.0)
Sourcepub fn get_stats(&self) -> Result<StreamStats>
pub fn get_stats(&self) -> Result<StreamStats>
Get stream statistics
Sourcepub fn reset_stats(&self) -> Result<()>
pub fn reset_stats(&self) -> Result<()>
Reset statistics
Sourcepub fn get_estimated_latency_ms(&self) -> Result<f32>
pub fn get_estimated_latency_ms(&self) -> Result<f32>
Get estimated latency in milliseconds
Sourcepub fn has_sufficient_buffer_space(&self) -> Result<bool>
pub fn has_sufficient_buffer_space(&self) -> Result<bool>
Check if there’s enough buffer space for low-latency streaming
Sourcepub async fn wait_for_buffer_space(&self, timeout: Duration) -> Result<bool>
pub async fn wait_for_buffer_space(&self, timeout: Duration) -> Result<bool>
Wait for buffer space to become available
Auto Trait Implementations§
impl Freeze for RealTimeAudioStream
impl !RefUnwindSafe for RealTimeAudioStream
impl Send for RealTimeAudioStream
impl Sync for RealTimeAudioStream
impl Unpin for RealTimeAudioStream
impl !UnwindSafe for RealTimeAudioStream
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.