mirror of
				https://gitlab.com/octtspacc/OcttKB
				synced 2025-06-06 00:29:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html>
 | |
|   <head>
 | |
|     <meta charset="utf-8"/>
 | |
|     <meta name="viewport" content="width=device-width"/>
 | |
|   </head>
 | |
|   <body>
 | |
|     <button>Create</button>
 | |
|     <button>Suspend</button>
 | |
|     <button>Stop</button>
 | |
|     <script>
 | |
|       let audioCtx;
 | |
|       const startBtn = document.querySelector("button:nth-of-type(1)");
 | |
|       const susresBtn = document.querySelector("button:nth-of-type(2)");
 | |
|       const stopBtn = document.querySelector("button:nth-of-type(3)");
 | |
|       susresBtn.setAttribute("disabled", "disabled");
 | |
|       stopBtn.setAttribute("disabled", "disabled");
 | |
| 
 | |
|       startBtn.onclick = () => {
 | |
|         startBtn.setAttribute("disabled", "disabled");
 | |
|         susresBtn.removeAttribute("disabled");
 | |
|         stopBtn.removeAttribute("disabled");
 | |
|         audioCtx = new AudioContext();
 | |
|         const oscillator = new OscillatorNode(audioCtx, { frequency: 1000 });
 | |
|         const gainNode = new GainNode(audioCtx, { gain: 0.1 });
 | |
|         oscillator.connect(gainNode);
 | |
|         gainNode.connect(audioCtx.destination);
 | |
|         oscillator.start(0);
 | |
|       };
 | |
| 
 | |
|       susresBtn.onclick = () => {
 | |
|         if (audioCtx.state === "running") {
 | |
|           audioCtx.suspend().then(() => {
 | |
|             susresBtn.textContent = "Resume";
 | |
|           });
 | |
|         } else if (audioCtx.state === "suspended") {
 | |
|           audioCtx.resume().then(() => {
 | |
|             susresBtn.textContent = "Suspend";
 | |
|           });
 | |
|         }
 | |
|       };
 | |
| 
 | |
|       stopBtn.onclick = () => {
 | |
|         audioCtx.close().then(() => {
 | |
|           startBtn.removeAttribute("disabled");
 | |
|           susresBtn.setAttribute("disabled", "disabled");
 | |
|           susresBtn.textContent = "Suspend";
 | |
|           stopBtn.setAttribute("disabled", "disabled");
 | |
|         });
 | |
|       };
 | |
|     </script>
 | |
|   </body>
 | |
| </html> |