Опять аудио... Музыка фоном, КАК ???

Тема в разделе "JavaScript", создана пользователем MaxMaxFriend, 14 сен 2020.

  1. MaxMaxFriend

    MaxMaxFriend

    Регистрация:
    14 сен 2020
    Сообщения:
    0
    Симпатии:
    0
    Добрый день Асам по JS !!!
    Cо криптами я новичок ! И нужно, поскольку столкнулся по работе...
    Не понимаю, что не так в коде по случ.выбору музыки, которая должна звучать фоном при открытии страницы...
    Выбор в switch выполняется... О чем свидетельствует отладочный - alert (x) Отдельно, вне скрипта :
    <audio src="https://drivemusic.me/dl/AWkaaH9xtZ...usic/2016/02/keiko-matsui-forever-forever.mp3" autoplay></audio>
    работает !!!
    А по выбору - нет ??? Помогите решить задачку, плиз...
    Привожу код:
    HTML:
    <html>
    <body>
    <script>
    switch (Math.floor(Math.random() * 3) + 1) {// Один из 3х
    case 1:
    x="https://drivemusic.me/dl/AWkaaH9xtZJtrs38TMfQLg/1599767898/download_music/2016/02/keiko-matsui-forever-forever.mp3";
    break;
    case 2:
    x="https://drivemusic.me/dl/b1Uf_3jG11wbPk6VN39aKA/1599698135/download_music/2014/06/parallels-beachflow.mp3";
    break;
    case 3:
    x="https://drivemusic.me/dl/LYGwhcbsvxWYFthXC-ahSw/1599698369/download_music/2013/04/central-lounge-before-closing.mp3";
    }
    alert (x);
    //<audio src=x autoplay></audio>
    </script>
    </body>
    </html>
    Но, Но и но: У меня музыка при открытии страницы автоматом, то бишь autoplay срабатывает, играет. А вот как выбрать ?????
     
  2. SinTaksiS-11

    SinTaksiS-11

    Регистрация:
    10 апр 2023
    Сообщения:
    12
    Симпатии:
    1
    Проблема в том, что пытаетесь использовать переменную x в качестве значения атрибута src для элемента <audio>, но значение переменной не подставляется в HTML-код.

    Чтобы решить эту проблему, нужно создать элемент <audio> в JavaScript и задать значение атрибута src с помощью переменной x. Затем добавить элемент <audio> в DOM-дерево страницы.

    Пример

    HTML:
    <html>
    <body>
    <script>
    switch (Math.floor(Math.random() * 3) + 1) {// Один из 3х
      case 1:
       x="https://drivemusic.me/dl/AWkaaH9xtZJtrs38TMfQLg/1599767898/download_music/2016/02/keiko-matsui-forever-forever.mp3";
       break;
      case 2:
       x="https://drivemusic.me/dl/b1Uf_3jG11wbPk6VN39aKA/1599698135/download_music/2014/06/parallels-beachflow.mp3";
       break;
      case 3:
       x="https://drivemusic.me/dl/LYGwhcbsvxWYFthXC-ahSw/1599698369/download_music/2013/04/central-lounge-before-closing.mp3";
    }
    
    alert(x);
    
    var audio = document.createElement("audio");
    audio.setAttribute("src", x);
    audio.setAttribute("autoplay", "autoplay");
    document.body.appendChild(audio);
    </script>
    </body>
    </html>
    Здесь мы создаем элемент <audio> с помощью document.createElement("audio"), задаем значение атрибута src с помощью audio.setAttribute("src", x), задаем атрибут autoplay с помощью audio.setAttribute("autoplay", "autoplay"), и добавляем элемент <audio> в конец тела документа с помощью document.body.appendChild(audio).