pub(crate) struct AudioBufferSourceNode {
Show 16 fields channel_info: ChannelInfo, buffer: Option<AudioBuffer>, buffer_duration: f64, buffer_pos: f64, detune: Param, initialized_pos: bool, loop_enabled: bool, loop_end: Option<f64>, loop_start: Option<f64>, playback_rate: Param, start_at: Option<Tick>, start_offset: Option<f64>, start_duration: Option<f64>, start_when: f64, stop_at: Option<Tick>, pub onended_callback: Option<OnEndedCallback>,
}
Expand description

AudioBufferSourceNode engine. https://webaudio.github.io/web-audio-api/#AudioBufferSourceNode

Fields§

§channel_info: ChannelInfo§buffer: Option<AudioBuffer>

A data block holding the audio sample data to be played.

§buffer_duration: f64

How many more buffer-frames to output. See buffer_pos for clarification.

§buffer_pos: f64

“Index” of the next buffer frame to play. “Index” is in quotes because this variable maps to a playhead position (the offset in seconds can be obtained by dividing by self.buffer.sample_rate), and therefore has subsample accuracy; a fractional “index” means interpolation is needed.

§detune: Param

AudioParam to modulate the speed at which is rendered the audio stream.

§initialized_pos: bool

Whether we need to compute offsets from scratch.

§loop_enabled: bool

Indicates if the region of audio data designated by loopStart and loopEnd should be played continuously in a loop.

§loop_end: Option<f64>

An playhead position where looping should end if the loop_enabled attribute is true.

§loop_start: Option<f64>

An playhead position where looping should begin if the loop_enabled attribute is true.

§playback_rate: Param

The speed at which to render the audio stream. Can be negative if the audio is to be played backwards. With a negative playback_rate, looping jumps from loop_start to loop_end instead of the other way around.

§start_at: Option<Tick>

Time at which the source should start playing.

§start_offset: Option<f64>

Offset parameter passed to Start().

§start_duration: Option<f64>

Duration parameter passed to Start().

§start_when: f64

The same as start_at, but with subsample accuracy. FIXME: AudioScheduledSourceNode should use this as well.

§stop_at: Option<Tick>

Time at which the source should stop playing.

§onended_callback: Option<OnEndedCallback>

The ended event callback.

Implementations§

source§

impl AudioBufferSourceNode

source

fn should_play_at(&mut self, tick: Tick) -> ShouldPlay

source

fn start(&mut self, tick: Tick) -> bool

source

fn stop(&mut self, tick: Tick) -> bool

source

fn maybe_trigger_onended_callback(&mut self)

source

fn handle_source_node_message( &mut self, message: AudioScheduledSourceNodeMessage, sample_rate: f32, )

source§

impl AudioBufferSourceNode

source

pub fn new( options: AudioBufferSourceNodeOptions, channel_info: ChannelInfo, ) -> Self

source

pub fn handle_message(&mut self, message: AudioBufferSourceNodeMessage, _: f32)

Trait Implementations§

source§

impl AudioNodeCommon for AudioBufferSourceNode

source§

impl AudioNodeEngine for AudioBufferSourceNode

source§

fn node_type(&self) -> AudioNodeType

source§

fn input_count(&self) -> u32

source§

fn process(&mut self, inputs: Chunk, info: &BlockInfo) -> Chunk

source§

fn get_param(&mut self, id: ParamType) -> &mut Param

source§

fn message_specific(&mut self, msg: AudioNodeMessage, sample_rate: f32)

Messages specific to this node
source§

fn message(&mut self, msg: AudioNodeMessage, sample_rate: f32)

source§

fn output_count(&self) -> u32

source§

fn channel_count(&self) -> u8

Number of input channels for each input port
source§

fn channel_count_mode(&self) -> ChannelCountMode

source§

fn channel_interpretation(&self) -> ChannelInterpretation

source§

fn set_channel_interpretation(&mut self, i: ChannelInterpretation)

source§

fn set_channel_count(&mut self, c: u8)

source§

fn set_channel_count_mode(&mut self, m: ChannelCountMode)

source§

fn destination_data(&mut self) -> Option<Chunk>

If we’re the destination node, extract the contained data
source§

fn set_listenerdata(&mut self, _: Block)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.