pub struct AudioBufferSourceNode { /* private fields */ }
Expand description

AudioBufferSourceNode represents an audio source that consists of an in-memory audio source (i.e. an audio file completely loaded in memory), stored in an AudioBuffer.

Usage

use std::fs::File;
use web_audio_api::context::{BaseAudioContext, AudioContext};
use web_audio_api::node::{AudioNode, AudioScheduledSourceNode};

// create an `AudioContext`
let context = AudioContext::new(None);
// load and decode a soundfile
let file = File::open("samples/sample.wav").unwrap();
let audio_buffer = context.decode_audio_data_sync(file).unwrap();
// play the sound file
let src = context.create_buffer_source();
src.set_buffer(audio_buffer);
src.connect(&context.destination());
src.start();

Examples

  • cargo run --release --example trigger_soundfile
  • cargo run --release --example granular

Implementations

Create a new AudioBufferSourceNode instance

Start the playback at the given time and with a given offset

Panics

Panics if the source was already started

Start the playback at the given time, with a given offset, for a given duration

Panics

Panics if the source was already started

Current buffer value (nullable)

Provide an AudioBuffer as the source of data to be played bask

Panics

Panics if a buffer has already been given to the source (though new or through set_buffer)

K-rate AudioParam that defines the speed at which the AudioBuffer will be played, e.g.:

  • 0.5 will play the file at half speed
  • -1 will play the file in reverse

Note that playback rate will also alter the pitch of the AudioBuffer

K-rate AudioParam that defines a pitch transposition of the file, expressed in cents

see https://en.wikipedia.org/wiki/Cent_(music)

Defines if the playback the AudioBuffer should be looped

Defines the loop start point, in the time reference of the AudioBuffer

Defines the loop end point, in the time reference of the AudioBuffer

Trait Implementations

The number of inputs feeding into the AudioNode. For source nodes, this will be 0.

The number of outputs coming out of the AudioNode.

The BaseAudioContext which owns this AudioNode.

Connect the output of this AudioNode to the input of another node. Read more

Connect a specific output of this AudioNode to a specific input of another node. Read more

Disconnects all outputs of the AudioNode that go to a specific destination AudioNode.

Disconnects all outgoing connections from the AudioNode.

Represents an enumerated value describing the way channels must be matched between the node’s inputs and outputs. Read more

Represents an enumerated value describing the meaning of the channels. This interpretation will define how audio up-mixing and down-mixing will happen. Read more

Represents an integer used to determine how many channels are used when up-mixing and down-mixing connections to any inputs to the node. Read more

Play immediately Read more

Schedule playback start at given timestamp Read more

Stop immediately Read more

Schedule playback stop at given timestamp Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.