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: f64How 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: ParamAudioParam to modulate the speed at which is rendered the audio stream.
initialized_pos: boolWhether we need to compute offsets from scratch.
loop_enabled: boolIndicates 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: ParamThe 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: f64The 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
impl AudioBufferSourceNode
fn should_play_at(&mut self, tick: Tick) -> ShouldPlay
fn start(&mut self, tick: Tick) -> bool
fn stop(&mut self, tick: Tick) -> bool
fn maybe_trigger_onended_callback(&mut self)
fn handle_source_node_message( &mut self, message: AudioScheduledSourceNodeMessage, sample_rate: f32, )
Source§impl AudioBufferSourceNode
impl AudioBufferSourceNode
pub fn new( options: AudioBufferSourceNodeOptions, channel_info: ChannelInfo, ) -> Self
pub fn handle_message(&mut self, message: AudioBufferSourceNodeMessage, _: f32)
Trait Implementations§
Source§impl AudioNodeCommon for AudioBufferSourceNode
impl AudioNodeCommon for AudioBufferSourceNode
fn channel_info(&self) -> &ChannelInfo
fn channel_info_mut(&mut self) -> &mut ChannelInfo
Source§impl AudioNodeEngine for AudioBufferSourceNode
impl AudioNodeEngine for AudioBufferSourceNode
fn node_type(&self) -> AudioNodeType
fn input_count(&self) -> u32
fn process(&mut self, inputs: Chunk, info: &BlockInfo) -> Chunk
fn get_param(&mut self, id: ParamType) -> &mut Param
Source§fn message_specific(&mut self, msg: AudioNodeMessage, sample_rate: f32)
fn message_specific(&mut self, msg: AudioNodeMessage, sample_rate: f32)
fn message(&mut self, msg: AudioNodeMessage, sample_rate: f32)
fn output_count(&self) -> u32
Source§fn channel_count(&self) -> u8
fn channel_count(&self) -> u8
fn channel_count_mode(&self) -> ChannelCountMode
fn channel_interpretation(&self) -> ChannelInterpretation
fn set_channel_interpretation(&mut self, i: ChannelInterpretation)
fn set_channel_count(&mut self, c: u8)
fn set_channel_count_mode(&mut self, m: ChannelCountMode)
Source§fn destination_data(&mut self) -> Option<Chunk>
fn destination_data(&mut self) -> Option<Chunk>
fn set_listenerdata(&mut self, _: Block)
Auto Trait Implementations§
impl Freeze for AudioBufferSourceNode
impl !RefUnwindSafe for AudioBufferSourceNode
impl Send for AudioBufferSourceNode
impl !Sync for AudioBufferSourceNode
impl Unpin for AudioBufferSourceNode
impl UnsafeUnpin for AudioBufferSourceNode
impl !UnwindSafe for AudioBufferSourceNode
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
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>
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>
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 more