class SampleInput extends HTMLElement {
static register(tagName) {
if ("customElements" in window) {
customElements.define(tagName || "sample-input", SampleInput);
}
}
connectedCallback() {
this.input.addEventListener("change", (event) => {
this.updateAudio(event.target);
});
}
updateAudio(input) {
const reader = new FileReader();
reader.readAsDataURL(input.files[0]);
reader.addEventListener("loadend", () => {
this.player.src = reader.result;
});
}
get input() {
return this.querySelector("input");
}
get player() {
return this.querySelector("audio, video");
}
}
SampleInput.register();