player = url => {
const node = htl.html`<span class="audio-player">
<button onClick=${onClick}>▶</button>
<audio onEnded=${() => pause(node)} src=${url} />
</span>`;
function play(el) {
el.querySelector("audio").play();
el.querySelector("button").innerText = "◼️";
}
function pause(el) {
el.querySelector("audio").pause();
el.querySelector("button").innerText = "▶";
}
function onClick() {
for (const p of document.querySelectorAll(".audio-player")) {
if (p === node) continue;
pause(p);
}
if (node.querySelector("audio").paused) play(node);
else pause(node);
}
return node;
}