file_webaudio_startstop.html (630B)
1 <!DOCTYPE html> 2 <script> 3 var ac = new AudioContext(); 4 var runningPromise = new Promise(resolve => { 5 ac.onstatechange = event => { 6 if (ac.state == "running") { 7 resolve(); 8 } 9 }; 10 }); 11 12 var osc = ac.createOscillator(); 13 osc.connect(ac.destination); 14 osc.start(0); 15 osc.stop(osc.context.currentTime + 2.0); 16 17 var suspendPromise; 18 function suspendAC() { 19 runningPromise.then(() => { 20 suspendPromise = ac.suspend(); 21 }); 22 } 23 24 var resumePromise; 25 function resumeAC() { 26 suspendPromise.then(() => { 27 resumePromise = ac.resume(); 28 }); 29 } 30 31 function closeAC() { 32 resumePromise.then(() => { 33 ac.close(); 34 }); 35 } 36 </script>