Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2023, 09:02
Кандидат Javascript-наук
Отправить личное сообщение для Борис К Посмотреть профиль Найти все сообщения от Борис К
 
Регистрация: 22.02.2017
Сообщений: 145

Последовательное воспроизведение по образцу аудио
Здравствуйте, JS-интеллектуалы!
Вот придумал себе очередное учебное задание по мотивам прошлых тем , которое частично решилось, а вот дальше необходима помощь .
Суть проблемы в следующем: по клику на кнопку в случайном порядке последовательно воспроизводится определённое количество аудио из массива (в данном случае три, но почему-то они могут повторяться, что нежелательно). Затем в текстовой форме должны вывестись числа, которые прозвучали в аудио, по которым следует пройтись кликами в точном порядке воспроизведения аудио до alert OK!
P.S. Понимаю, что задача не из простых, но, видимо, решаема, поэтому, если кому не лень помочь, то буду рад!

<!DOCTYPE html>
<html>
<head>
    <title>Play numbers</title>
    <meta charset="utf-8">
</head>
<body>

        <button onclick="playRndmNumbers(3)">Play numbers</button>

        <div style="display: none">
            <div data-id="0">1</div>
            <div data-id="1">2</div>
            <div data-id="2">3</div>
            <div data-id="3">4</div>
        </div>

<script>

"use strict";

        let numbers = [];
            numbers[0] = ['https://zvukipro.com/uploads/files/2021-08/1628310342_odin1.mp3'];
            numbers[1] = ['https://zvukipro.com/uploads/files/2021-08/1628310355_dva2.mp3'];
            numbers[2] = ['https://zvukipro.com/uploads/files/2021-08/1628310381_tri3.mp3'];
            numbers[3] = ['https://zvukipro.com/uploads/files/2021-08/1628310458_chetyer.mp3'];

        function playRndmNumbers(count) { 
 
            let number = count - 1;
            let audio = new Audio(getRndmNumbers());
            audio.play();

            audio.onended = () => {
            setTimeout(() => {
                if (number > 0) {
                   audio.src = getRndmNumbers();
                   audio.play();
                   number--;
                }
            }, 1000);
            };
        }

        function getRndmNumbers() {
            return numbers[Math.floor(Math.random() * numbers.length)]
        }
</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воспроизведение аудио, соответствующего блоку Борис К Firefox/Mozilla 2 11.06.2021 15:39
Отследить воспроизведение аудио Galyanov Events/DOM/Window 2 23.11.2019 02:44
Воспроизведение аудио yumakar Events/DOM/Window 8 29.10.2019 13:53
Воспроизведение аудио при переходе по страницам сайта smegol Мобильный JavaScript 2 17.02.2018 01:03
Воспроизведение аудио MaksZua Общие вопросы Javascript 1 04.11.2015 22:23