AudioPlayerComp.svelte
<script context="module"> const elements = new Set(); export function stopAll() { elements.forEach(element => { element.pause(); }); } </script> <script> import { onMount } from 'svelte'; export let src; export let title; export let composer; export let performer; let audio; let paused = true; onMount(() => { elements.add(audio); return () => elements.delete(audio); }); function stopOthers() { elements.forEach(element => { if (element !== audio) element.pause(); }); } </script> <article class:playing={!paused}> <h2>{title}</h2> <p><strong>{composer}</strong> / performed by {performer}</p> <audio bind:this={audio} bind:paused on:play={stopOthers} controls {src} ></audio> </article> <style> article { margin: 0 0 1em 0; max-width: 800px } h2, p { margin: 0 0 0.3em 0; } audio { width: 100%; margin: 0.5em 0 1em 0; } .playing { color: #ff3e00; } </style>
AudioPlayer.svelte
<script> import AudioPlayer, { stopAll } from './component/AudiPlayerComp.svelte'; </script> <button on:click={stopAll}> stop all audio </button> <!-- https://musopen.org/music/9862-the-blue-danube-op-314/ --> <AudioPlayer src="https://sveltejs.github.io/assets/music/strauss.mp3" title="The Blue Danube Waltz" composer="Johann Strauss" performer="European Archive" /> <!-- https://musopen.org/music/43775-the-planets-op-32/ --> <AudioPlayer src="https://sveltejs.github.io/assets/music/holst.mp3" title="Mars, the Bringer of War" composer="Gustav Holst" performer="USAF Heritage of America Band" /> <!-- https://musopen.org/music/8010-3-gymnopedies/ --> <AudioPlayer src="https://sveltejs.github.io/assets/music/satie.mp3" title="Gymnopédie no. 1" composer="Erik Satie" performer="Prodigal Procrastinator" /> <!-- https://musopen.org/music/2567-symphony-no-5-in-c-minor-op-67/ --> <AudioPlayer src="https://sveltejs.github.io/assets/music/beethoven.mp3" title="Symphony no. 5 in Cm, Op. 67 - I. Allegro con brio" composer="Ludwig van Beethoven" performer="European Archive" /> <!-- https://musopen.org/music/43683-requiem-in-d-minor-k-626/ --> <AudioPlayer src="https://sveltejs.github.io/assets/music/mozart.mp3" title="Requiem in D minor, K. 626 - III. Sequence - Lacrymosa" composer="Wolfgang Amadeus Mozart" performer="Markus Staab" />
dan import ke App.svelte
<WindowComp /> <!-- <WindowBindingComp /> --> <BodyComp /> <HeadComp /> <AudioPlayer />
dan hasilnya akan seperti ini ya…
source code ada disini ya… cyaaa…
Thank’s