Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как проигрывать звуковой файл с компьютера через Jscript (https://javascript.ru/forum/misc/76642-kak-proigryvat-zvukovojj-fajjl-s-kompyutera-cherez-jscript.html)

ttt480 29.01.2019 12:50

Как проигрывать звуковой файл с компьютера через Jscript
 
Добрый день.
У меня такой вопрос.

Как прикрутить к странице на домашнем компьютере - прикрутить ссылку на звуковой файл 1.mp3 (который лежит рядом с index.html) ?

Чтобы при открытии страницы - бесконечно проигрывался звук из 1.mp3.
А при закрытии данного html - этот звук бы исчезал.

Nexus 29.01.2019 13:00

https://stackoverflow.com/a/18628124/9914716
https://www.w3schools.com/tags/ref_av_dom.asp

ttt480 29.01.2019 13:13

Nexus, не работает.

Скрипт теперь выглядит вот так:
<script language="JavaScript" type="text/javascript">

var audio = new Audio('audio_file.mp3');
audio.play();
</script>


Но звук не воспроизводит.

j0hnik 29.01.2019 15:11

ttt480,
через FireFox попробуйте запустить.

ttt480 29.01.2019 15:28

j0hnik, запустил через FireFox.

Результат тот же самый - никакого звучания нет.

j0hnik 29.01.2019 15:35

ttt480,
script должен находиться в файле с расширением html.
audio_file.mp3 должен быть в той же директории

ttt480 29.01.2019 15:41

Цитата:

Сообщение от j0hnik (Сообщение 502883)
ttt480,
script должен находиться в файле с расширением html.
audio_file.mp3 должен быть в той же директории

это само собой

laimas 29.01.2019 16:42

Цитата:

Сообщение от ttt480
Результат тот же самый - никакого звучания нет.

Значит что-то вы не то делаете, лиса будет воспроизводить, при этом файл не обязательно должен быть в одной папке с html файлом. А хром не разрешит автоматом запускать проигрывание и будет выдавать сообщение об этом в консоли. Нужно в нем установить соответствующий флаг для разрешения этого действия.

Nexus 29.01.2019 16:49

Цитата:

Сообщение от ttt480
Результат тот же самый - никакого звучания нет.

Консоль откройте и посмотрите причину отсутствия звучания.

ttt480 30.01.2019 02:55

Вложений: 1
Nexus,
Полный код страницы выглядит вот так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
<style type="text/css">
body{
  background-image:url('https://i.pinimg.com/originals/e1/96/60/e196602ce4596889a3c55760c2461606.jpg');
}
</style>
<script language="JavaScript" type="text/javascript">

var audio = new Audio('file.mp3');
audio.play();

</script>
</head>
<body></body>
</html>


вот что пишет в консоли:
Uncaught (in promise) DOMException

ttt480 30.01.2019 02:58

Вложений: 1
Nexus,
И подсвечивает строку:

audio.play();

j0hnik 30.01.2019 03:23

в адресную строку
chrome://flags/#autoplay-policy
затем
#autoplay-policy измените на "User gesture is required for cross-origin iframes"

ttt480 30.01.2019 04:13

j0hnik,
Теперь заработало.

Большое спасибо за совет.

Malleys 30.01.2019 04:33

Вам нужно обработать исключение...

<!DOCTYPE html>
<html>
<head>
	<style>
		body {
			background-image: url('https://i.pinimg.com/originals/e1/96/60/e196602ce4596889a3c55760c2461606.jpg');
		}
	</style>
</head>

<body>
	<script>
		
var audio = new Audio('https://cs6-7v4.vkuseraudio.net/p12/85d3127fae5f10.mp3?extra=rMGRFdrKkd8q-kgHMqT0lR_AcI7AWWnZJlSqLBXIQuifdMFgR3XAZIxY1IBSeRAF7SgfA_0VIUTkvSv_q6G5HnA9KtvZ2lSsQZM9y__ruJYspKhvz7PSmzB2DnXkbk3SknOQaEn42PZWgEsDi3LOq_T5W5Q');
audio.play().then(() => {
	// проигрывание началось!
}).catch(error => {
	// проигрывание было отменено
	// покажите управление
	audio.controls = true;
	document.body.append(audio);
	// конечно же можете добавить свою кнопку,
	// на которую нажмёт пользователь, чтобы
	// послушать!
});

	</script>

</body>
</html>


Автозапуск со звуком разрешен, если:
- Пользователь взаимодействовал с доменом (щёлкнул мышью, прикоснулся к сенсорному экрану и т. д.).
- На настольном компьютере ранее воспроизводил звуком (на основе значения индекса заинтересованности пользователя)
- На мобильном телефоне пользователь добавил сайт на свой домашний экран


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