Working version of duck on iOS safari
This commit is contained in:
parent
8c97f2e2d0
commit
64f7bc4442
1 changed files with 7 additions and 0 deletions
|
|
@ -211,7 +211,14 @@ export function getVibratoOscillator(param, value, t) {
|
||||||
export function webAudioTimeout(audioContext, onComplete, startTime, stopTime) {
|
export function webAudioTimeout(audioContext, onComplete, startTime, stopTime) {
|
||||||
const constantNode = new ConstantSourceNode(audioContext);
|
const constantNode = new ConstantSourceNode(audioContext);
|
||||||
|
|
||||||
|
// Safari requires audio nodes to be connected in order for their onended events
|
||||||
|
// to fire, so we _mute it_ and then connect it to the destination
|
||||||
|
const zeroGain = gainNode(0);
|
||||||
|
zeroGain.connect(audioContext.destination);
|
||||||
|
constantNode.connect(zeroGain);
|
||||||
constantNode.start(startTime);
|
constantNode.start(startTime);
|
||||||
|
|
||||||
|
// Schedule the `onComplete` callback to occur at `stopTime`
|
||||||
constantNode.stop(stopTime);
|
constantNode.stop(stopTime);
|
||||||
constantNode.onended = () => {
|
constantNode.onended = () => {
|
||||||
onComplete();
|
onComplete();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue