Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Опять аудио! Музыка фоном, КАК ??? (https://javascript.ru/forum/dom-window/81002-opyat-audio-muzyka-fonom-kak.html)

MaxMaxFriend 11.09.2020 12:34

Опять аудио! Музыка фоном, КАК ???
 
Добрый день Асам по JS !!!
Cо криптами я новичок ! И нужно, поскольку столкнулся по работе...
Не понимаю, что не так в коде по случ.выбору музыки, которая должна звучать фоном при открытии страницы...
Выбор в switch выполняется... О чем свидетельствует отладочный - alert (x) Отдельно, вне скрипта :
<audio src="https://drivemusic.me/dl/AWkaaH9xtZJtrs38TMfQLg/1599767898/download_music/2016/02/keiko-matsui-forever-forever.mp3" autoplay></audio>
работает !!!
А по выбору - нет ??? :-/ Помогите решить задачку, плиз... :thanks:
Привожу код:

<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>

voraa 11.09.2020 13:53

Сейчас браузеры блокируют автовоспроизведение audio, независимо от того стоит там autoplay или программно вызывается функция play() без предварительных действий пользователя (например, по нажатию кнопки вызывается функция, которая вызывает play())

https://developer.mozilla.org/en-US/...Autoplay_guide

voraa 11.09.2020 15:07

Цитата:

Сообщение от MaxMaxFriend
<audio src=x autoplay></audio>

Это вообще какая то ерунда.
Тогда уж через document.write надо

Вот такой скрипт
<!DOCTYPE html>
<html lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<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";
}
document.write(`<div>${x}</div>`)
document.write(`<audio id='au' src="${x}" autoplay></audio>`)
</script>
<button id='pl'>Play</button>
<script>
document.getElementById('pl').addEventListener('click', ()=>document.getElementById('au').play())
</script>
</body>
</html>


по autoplay не срабатывает. Блокируется.
Только по действию пользователя = нажатию кнопки

MaxMaxFriend 11.09.2020 15:12

Что значит "...браузеры блокируют автовоспроизведение audio"
И Гугл и Яндекс у меня воспроизводит как я у же писал: "Отдельно, вне скрипта".
Запустите строку ниже даже в старом Int Explorer:
<audio src="https://drivemusic.me/dl/AWkaaH9xtZJtrs38TMfQLg/1599767898/download_music/2016/02/keiko-matsui-forever-forever.mp3" autoplay></audio>
и убедитесь, как НЕ РАБОТАЕТ !????
А вот в скрипте, УВЫ !

MaxMaxFriend 11.09.2020 15:22

По кнопке - уже ближе. Но это не то.... :nono: Может по одному из событий:
window.onload = function()
или
<body onload="function()">
:-?

voraa 12.09.2020 22:25

Цитата:

Сообщение от MaxMaxFriend
И Гугл и Яндекс у меня воспроизводит как я у же писал: "Отдельно, вне скрипта".
Запустите строку ниже даже в старом Int Explorer:

Я не понимаю, что такое "запустить строку".
Я знаю, как запустить на странице. Вне скрипта.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>audio</title>
</head>
<body>
<audio src="https://drivemusic.me/dl/AWkaaH9xtZJtrs38TMfQLg/1599767898/download_music/2016/02/keiko-matsui-forever-forever.mp3" autoplay></audio>
</body>
</html>


Блокируется.

MaxMaxFriend 14.09.2020 06:56

Многоуважаемый "voraa" - Профессор форума !
"запустить строку" - имеется такая терминология... значит
выполнить код, который без среды воспроизведения (в нашем случае любого браузера, как интерпретатора языка НТТP - языка протокола гипертекст.разметок) - прото строка, "дрова", если хотите...
Набрав в простом блокноте лишь один тег:
<audio src="...."></audio>
а затем переименовав файл с ним в тип: .htm выполнить, запустить даже в Int Explorer
и без вступительных:

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>audio</title>
</head>
<body>

РАБОТАЕТ для тестирования- ЕЩЕ КАК !!!

Жалко, что не получил нужного ответа :cray:
Решить такой простенький пример по программному выбору музыки - смешно...
И это есть - великий и могучий Java Script ?????

voraa 14.09.2020 07:34

Цитата:

Сообщение от MaxMaxFriend
Набрав в простом блокноте лишь один тег:
<audio src="...."></audio>
а затем переименовав файл с ним в тип: .htm выполнить, запустить даже в Int Explorer
и без вступительных:

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>audio</title>
</head>
<body>

Но реально то так не бывает.
Реально - есть страница со всеми заголовками.
И на этой реальной странице современные браузеры (про ИЕ не знаю, давно не приходится ориентироваться на него), начиная с каких то версий стали блокировать автовоспроизведение аудио (и воспроизведение по play() без явных действий пользователя). Когда это стало происходить нам тоже пришлось бросить одну работу, т.к не могли справиться с этим.
Наверно это правильно. Представьте, что все подряд начнут ставить фоновые вопли и шумы на свои страницы без всякого предупреждения.
И мы вынуждены будем все это слушать

MaxMaxFriend 14.09.2020 08:16

Я к тому, что вписывать обязательные теги для воспроиз. 1-го не неужно, а то, что интерпретатор обрамляет всем необходимым - это ясно !
На счет музыки. Кому не по душе Релакс или грубее достаточно заглушить динамики на панеле задач или https://javascript.ru/forum/attachme...d=160005957 7
во вкладке страницы...

Соглашусь с одним - эта политика скорее для конфиденциального просмотра страниц (не спалиться звуками при просмотре контента !!!)

Но, Но и но: У меня музыка при открытии страницы автоматом, то бишь autoplay срабатывает, играет. А вот как выбрать ?????

voraa 14.09.2020 08:32

Цитата:

Сообщение от MaxMaxFriend
Я к тому, что вписывать обязательные теги для воспроиз. 1-го не неужно, а то, что интерпретатор обрамляет всем необходимым - это ясно !

<audio src="https://drivemusic.me/dl/AWkaaH9xtZJtrs38TMfQLg/1599767898/download_music/2016/02/keiko-matsui-forever-forever.mp3" autoplay></audio>


Играет?
Цитата:

Сообщение от MaxMaxFriend
Но, Но и но: У меня музыка при открытии страницы автоматом, то бишь autoplay срабатывает, играет. А вот как выбрать ?????

Приведите тут свой пример, где срабатывает автоплей

Цитата:

Сообщение от MaxMaxFriend
На счет музыки. Кому не по душе Релакс или грубее достаточно заглушить динамики на панеле задач или
во вкладке страницы...

Это совсем неправильно. Нельзя заставлять пользователя совершать лишние телодвижения, что бы от чего то отказаться. Пользователь должен осознанно что то сделать, что бы получить что то.
Это как устанавливать платную подписку не спрашивая согласия. Типа, если не нужно откажись. Но деньги за первоначальную установку спишем.


Часовой пояс GMT +3, время: 14:54.