JSFiddle - React, Tailwind, and code Playground
HTML
<h2>safari createJavaScriptNode demo</h2>
<button id="suspendBtn" >Suspend context</button>
<button id="resumeBtn" >Resume context</button>
<script>
var suspendBtn = document.getElementById("suspendBtn");
var resumeBtn = document.getElementById("resumeBtn");
suspendBtn.onclick = function() {
context.suspend();
}
resumeBtn.onclick = function() {
context.resume();
}
var context = new webkitAudioContext();
var generatorNode = context.createJavaScriptNode(2048, 1, 2);
generatorNode.onaudioprocess = function generateWhiteNoise(e) {
var output = e.outputBuffer.getChannelData(0);
for (var i = 0; i < output.length; i++) {
output[i] = ( Math.random() * 2 ) - 1;
}
}
// This connects the generatorNode but in a suspended state!
generatorNode.connect(context.destination);
// This has no effect!
// seems that it needs to be called from another context/closure
context.resume();
</script>