Как сделать так, чтобы мой звук на моей функции запуска был в цикле, чтобы он воспроизводился все время во время игры в javascript?

Я пытаюсь заставить myMusic, который извлекается из моего файла.html, запускаться в цикле после запуска функции запуска игры, и я не могу понять, как это сделать. Я полагаю, что должно быть что-то, что я могу сделать в функции startgame для myMusic.play(); но я не могу понять это. любая помощь будет оценена.

var myMusic = document.getElementById("myMusic");
var myStartSound = document.getElementById("myStartSound");
var myWinSound = document.getElementById("myWinSound");
var myLoseSound = document.getElementById("myLoseSound");
var themeMusic = document.getElementById("themeMusic");
var audio = new Audio("./assets/Sounds/Halo theme.mp3");
window.onload = function(){
    audio.play()
    .then(function () {
        console.log("ahhhhh");

    })
    .catch(function (err) {
        console.log(err);
        audio.currentTime = 1;
        audio.play()
        .then(function () {
            console.log("ahhhhh");
    
        })
        .catch(function (err) {
            console.log(err);
            audio.currentTime = 1;
            audio.play()
        })
    })

}

//alphabet array
var alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
];

//array for users guessed letters
var guessedLetter = [];
//array for users correct guesses
var correctLetter = [];
//guessed letters that are incorrect
var incorrectGuess = [];



//Below is the functionality of the game
function startGame() {
    numGuesses = 12;
    blanksAndSuccess = [];
    guessedLetter = [];
    incorrectGuess = [];
    audio.pause();
    myMusic.play()
        .then(function () {
            console.log("ahhhhh");

        })
        .catch(function (err) {
  

1 ответ

Вы можете попробовать сделать

document.getElementById("myMusic").loop = true;

По данным w3School:

Свойство loop устанавливает или возвращает, должен ли звук начать воспроизводиться заново после его завершения.

Это свойство отражает атрибут цикла.

Когда он присутствует, он указывает, что звук должен воспроизводиться снова, когда он закончится.

Это означает, что это должно заставить ваш звук перейти в режим петли

Есть чрезвычайно простой способ сделать это как в HTML, так и в Javascript.HTML:

    <audio src = "" loop = true>

Javascript:

    document.getElementById("audio").loop = true;

Я также интегрировал его в функцию, которая воспроизводит музыку, и вы можете выбрать зацикливание:

    var makePlayAudio = function(src, looping) {
        var aud = new Audio();
        aud.src = src;
        aud.loop = looping;
        aud.play();
    }

Тестировал на хроме.

Другие вопросы по тегам