AudioBufferSourceNode
The AudioBufferSourceNode
is an AudioScheduledSourceNode
which represents audio source with in-memory audio data, stored in AudioBuffer
.
You can use it for audio playback, including standard pause and resume functionalities.
An AudioBufferSourceNode
can be started only once, so if you want to play the same sound again you have to created new one.
However this node is very inexpensive to create, and what is crucial you can reuse same AudioBuffer
.
AudioNode
properties
Number of inputs | 0 |
Number of outputs | 1 |
Channel count | defined by associated buffer |
Channel count mode | max |
Channel interpretation | speakers |
Constructor
BaseAudioContext.createBufferSource(options)
Properties
Name | Type | Description |
---|---|---|
buffer | AudioBuffer | Associated AudioBuffer . |
detune | AudioParam | k-rate AudioParam representing detuning of oscillation in cents. |
loop | boolean | Boolean indicating if audio data must be replayed after when end of the associated AudioBuffer is reached. |
loopStart | number | Float value indicating the time, in seconds, at which playback of the audio must begin, if loop is true. |
loopEnd | number | Float value indicating the time, in seconds, at which playback of the audio must end and loop back to loopStart , if loop is true. |
playbackRate | AudioParam | k-rate AudioParam defining speed factor at which the audio will be played. |
Methods
start
Overridden
The above method schedules AudioBufferSourceNode
to start playback of audio data contained in the associated AudioBuffer
, or starts to play immediately.
Parameters | Type | Description |
---|---|---|
when | number | The time, in seconds, at which the node will start to play. |
offset Optional | number | An offset, in seconds, determines the starting point for audio playback. |
duration Optional | number | The duration, in seconds, of audio playback. |
Errors:
Error type | Description |
---|---|
RangeError | when is negative number. |
RangeError | offset is negative number. |
RangeError | duration is negative number. |
InvalidStateError | If node has already been started once. |
Returns undefined
.
Remarks
buffer
- If is null, it outputs a single channel of silence (all samples are equal to 0).
detune
- Default value is 0.0.
- Nominal range is -∞ to ∞.
- For example value of 100 detune the source up by one semitone, whereas -1200 down by one octave.
- When
createBufferSource(true)
it is clamped to range -1200 to 1200.
loop
- Default value is false.
loopStart
- Default value is 0.
loopEnd
- Default value is
buffer.duration
.
playbackRate
- Default value is 1.0.
- Nominal range is -∞ to ∞.
- For example value of 1.0 plays audio at normal speed, whereas value of 2.0 plays audio twice as fast as normal speed.
- When created with
createBufferSource(true)
it is clamped to range 0 to 3 and uses pitch correction algorithm.