Вы можете использовать Web Audio API для воспроизведения звука без видимого контроля на html-странице.
Существует опция loop , которую можно активировать для воспроизведения в цикле.
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
let source = audioCtx.createBufferSource();
fetch('sample.wav')
.then(response => response.arrayBuffer())
.then(buffer => {
audioCtx.decodeAudioData(buffer, data => {
source.buffer = data;
source.connect(audioCtx.destination);
source.loop = true;
source.start(0);
})
})
Если вам нужно, вы можете добавить регулятор громкости, например, с помощью gainNode
и ползунка диапазона.
Обратите внимание, что некоторые реализации браузера не позволяют воспроизводить аудио, пока пользователь явно не разрешит его.