This commit is contained in:
freddyaboulton
2024-10-10 16:10:08 -07:00
parent 85cf0d726e
commit ed6116a7da

View File

@@ -6,9 +6,9 @@
export let audio_source: HTMLAudioElement; export let audio_source: HTMLAudioElement;
let audioContext: AudioContext; let audioContext: AudioContext;
let analyser; let analyser: AnalyserNode;
let dataArray; let dataArray: Uint8Array;
let animationId; let animationId: number;
let is_muted = false; let is_muted = false;
$: containerWidth = `calc((var(--boxSize) + var(--gutter)) * ${numBars})`; $: containerWidth = `calc((var(--boxSize) + var(--gutter)) * ${numBars})`;
@@ -51,14 +51,16 @@
animationId = requestAnimationFrame(updateBars); animationId = requestAnimationFrame(updateBars);
} }
function togglePlayPause() { function toggleMute() {
if (is_muted) { if (audio_source && audio_source.srcObject) {
audio_source.muted = false; const audioTracks = (audio_source.srcObject as MediaStream).getAudioTracks();
} else { audioTracks.forEach(track => {
audio_source.muted = true; track.enabled = !track.enabled;
} });
is_muted = !is_muted; is_muted = !audioTracks[0].enabled;
} }
}
</script> </script>
@@ -67,8 +69,8 @@
{#each Array(numBars) as _} {#each Array(numBars) as _}
<div class="box"></div> <div class="box"></div>
{/each} {/each}
</div> </div>
<button class="playPauseButton" on:click={togglePlayPause}> <button class="muteButton" on:click={toggleMute}>
{is_muted ? '🔈' : '🔊'} {is_muted ? '🔈' : '🔊'}
</button> </button>
</div> </div>
@@ -96,7 +98,7 @@
border-radius: 8px; border-radius: 8px;
transition: transform 0.05s ease; transition: transform 0.05s ease;
} }
.muteButton { .muteButton {
margin-top: 10px; margin-top: 10px;
padding: 10px 20px; padding: 10px 20px;
@@ -104,7 +106,7 @@
cursor: pointer; cursor: pointer;
background: none; background: none;
border: none; border: none;
border-radius: 5px; border-radius: 5px;
color: var(--color-accent); color: var(--color-accent);
} }