1

(12 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

bebyk написав:

Найпростіше зі splice.

Доброго дня, друже!))
Чомусь зразу не побачив оновлений Вами код((
Для полегшення сприйняття  вставив аудіо файли, але чомусь вони не відтворюються рандомно. Самостійно не можу розібратися((
У чому може бути проблема?

<!DOCTYPE html>
<html> 
<head>
<script type="text/javascript">
'use strict';

const SOUNDS = [
    "https://www.collinsdictionary.com/sounds/hwd_sounds/PL-W0059980.mp3",
    "https://www.collinsdictionary.com/sounds/hwd_sounds/PL-W0094830.mp3",
    "https://www.collinsdictionary.com/sounds/hwd_sounds/PL-W0091290.mp3",
    "https://www.collinsdictionary.com/sounds/hwd_sounds/PL-W0034390.mp3",
    "https://www.collinsdictionary.com/sounds/hwd_sounds/PL-W0033030.mp3"
   ];

function playRandomSounds(count) { 

    let sounds = SOUNDS;
    let index = count - 1;

    let  randomArrayIndex = getRandomNumber(sounds);
    const audio = new Audio(sounds.splice(randomArrayIndex, 1)[0]);
    audio.play();

    audio.onended = () => {
        if (index > 0) {
            randomArrayIndex = getRandomNumber(sounds);
            audio.src = sounds.splice(randomArrayIndex, 1)[0];
            audio.play();
            index--;
        }
    };
}

function getRandomNumber(maxNumber) {
    return Math.floor(Math.random() * maxNumber);
}
</script>
</head>
<body>
<button onclick="playRandomSounds(3)">Play Audio</button>
</body>
</html>

2

(12 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

bebyk написав:

Вважайте на стан sound — splice не тільки повертає обраний елемент, але й змінює масив з треками, вилучаючи той, повернув.

Добре... дякую Вам!))

3

(12 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

bebyk написав:

Найпростіше зі splice

На жаль, заплуталося.... але я розберуся)

4

(12 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

bebyk написав:

Я розвʼязав би за допомогою проміжкового циклу, з якого видаляти той елемент, що програється.

Дякую Вам... але я поки що самотужки, мабуть, не справлюсь(((

5

(12 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

bebyk написав:

Остаточний потестований варіант у мене вийшов такий.

Просто чудово вийшов!))
Щиро вдячний Вам, добра Людина!)))
P.S. А в якому напрямку подивитися, щоб аудіо в одній серії не повторювалося?

6

(12 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

bebyk написав:

Якось так.

Дякую, друже!)))
Але чомусь вони усі звучать разом...

Усім доброго вечора!))
Будь ласка, підкажить, яким чином зробити так, щоб щоразу при натисканні на кнопку випадково послідовно програвалися лише три аудіо.
Дякую!

<!DOCTYPE html>
<html> 
<head>
<script type="text/javascript">
function playRandomSound(){ 
    var sounds = [
       ".../sounds/01.mp3",
       ".../sounds/02.mp3",
       ".../sounds/03.mp3",
       ".../sounds/04.mp3",
       ".../sounds/05.mp3"
      ];
    
 
}
</script>
</head>
<body>
<button onclick="playAudio()">Play Audio</button>
</body>
</html>