наслаивается звук когда нажимаешь на кнопку play JS

Создал свой player, наслаивается звук когда нажимаешь на кнопку play

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>DIEDARIX</title>
    <link rel="stylesheet" type="text/css" href="css/main.css">
    <link rel="shortcut icon" href="icon.png" type="image/png">
</head>
<body>
    <div id="logo"></div>
    <script src="script.js"></script>
    <div id="bg"></div>
    <h1>DIEDARIX</h1> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <a href="https://t.me/diedari" target="_blank" ><img src="telegram.png" alt="" width="15px"></a>

    <!-- JAVASCRIPT --> 
    <script type="text/javascript" src="js/particles.min.js"></script>
    <script type="text/javascript" src="js/custom.js"></script>
    <script type="text/javascript" src="js/script.js"></script>

    <!--SCRIPTS-->  
</body>
</html>


var audioUrl = 'https://s54.freeconvert.com/task/62e4131d1ab0760013747e4e/bgm.wav';

$('h1').click( () => new Audio(audioUrl).play() );



Ответы (1 шт):

Автор решения: Опан

Такой код при каждом клике создаёт новый элемент аудио. Чтобы этого не было, его нужно создать один раз по ходу загрузки страницы, а с помощью нажатия на другие элементы только запускать и останавливать воспроизведение:

var audioUrl = 'https://s54.freeconvert.com/task/62e4131d1ab0760013747e4e/bgm.wav';
var audio = new Audio(audioUrl);
text.onclick = _ => {
if(audio.paused){
    audio.play();
}else{
    audio.pause()
}
}
<h1 id=text> текст </h1>

→ Ссылка