03.03.2024, 11:05
|
Аспирант
|
|
Регистрация: 08.10.2014
Сообщений: 80
|
|
Имитация нажатия на кнопку в audio controls.
Всем привет. Есть audio controls для воспроизведения музыки.
<audio controls class="muz">
<source src="music/1.mp3" type="audio/ogg" />
Есть ли возможность с помощью JS имитировать нажатие на кнопку для начала воспроизведения музыки сразу после загрузки страницы? Знаю раньше была такая возможность, сейчас в браузере это отменили. Обойти этот запрет можно?
Всем спасибо за участие.
|
|
03.03.2024, 13:33
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от III
|
сейчас в браузере это отменили. Обойти этот запрет можно?
|
Нет.
Вам дай волю - вы достанете этими звуками и видосами...
|
|
03.03.2024, 16:13
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Юзер если захочет может разрешить автозапуск для твоего сайта(слева у адресной строки кнопочка). А если не захочет - то и не надо.
__________________
29375, 35
|
|
03.03.2024, 17:52
|
Аспирант
|
|
Регистрация: 08.10.2014
Сообщений: 80
|
|
Да мне это надо не для сайта в интернете, а для автономной страницы. Пусть будет не audio controls, а простая обычная кнопка.
Последний раз редактировалось III, 03.03.2024 в 18:12.
|
|
03.03.2024, 20:31
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
III, на локальной странице в FF ты точно также можешь разрешить автовоспроизведение. В хроме увы нет.
Простая обычная кнопка кликается button.click(). Но аудио это тебе не воспроизведёт.
__________________
29375, 35
|
|
04.03.2024, 14:48
|
Аспирант
|
|
Регистрация: 08.10.2014
Сообщений: 80
|
|
Спасибо, всё стало понятно. Значит программное нажатие на кнопку тут не сработает.
Последний раз редактировалось III, 04.03.2024 в 14:50.
|
|
04.03.2024, 17:55
|
Аспирант
|
|
Регистрация: 08.10.2014
Сообщений: 80
|
|
Снова здравствуйте. Хотелось бы уточнить ещё такой вопрос по этой теме.
Речь опять же об автономной форме. Если сделать дополнительно страницу HTML в папке где основная страница, поместить туда кнопку, которая будет перенаправлять на основную страницу, примерно так
<button id="button">
<i class="fas fa-volume-up"></i>
</button>
<button onclick="window.open('ДР.html','_self');">
. В этой новой странице, от этой же кнопки включается музыка. Всё остальное выполняется на основной странице. Такой вариант возможен? Если да, то подскажите скрипт как это сделать.
Всем спасибо.
|
|
04.03.2024, 21:17
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,796
|
|
По сути, единственное, что требуется от пользователя - кликнуть по странице, чтобы разрешить проигрывать аудио.
Если очень хочется запустить медиа на странице, то почему не сделать как-то так?
<style>
.overlay {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, .7);
z-index: 1;
}
</style>
<div class="overlay">
<button type="button" disabled>
Loading...
</button>
</div>
<button type="button" data-role="play-pause-button">
Pause
</button>
<script>
document.addEventListener('DOMContentLoaded', () => {
const audio = new Audio();
const play = () => {
audio.play().catch(e => {
alert(e.message);
});
};
audio.addEventListener('canplaythrough', () => {
const button = document.querySelector('.overlay button');
if (!button) {
return;
}
button.textContent = 'Start';
button.disabled = false;
button.addEventListener('click', () => {
document.querySelector('.overlay')?.remove();
audio.muted = false;
audio.loop = true;
audio.volume = 1;// 0..1
play();
}, {once: true});
});
audio.addEventListener('error', () => {
alert(audio.error?.message ?? 'Something went wrong');
});
audio.src = 'https://mp3bob.ru/download/muz/Rick_Astley_-_Never_Gonna_Give_You_Up_[www.mp3pulse.ru].mp3';
document.querySelector('[data-role="play-pause-button"]')?.addEventListener('click', e => {
const button = e.target;
if (audio.paused) {
button.textContent = 'Pause';
play();
} else {
button.textContent = 'Play';
audio.pause();
}
});
});
</script>
Последний раз редактировалось Nexus, 04.03.2024 в 21:25.
|
|
04.03.2024, 23:01
|
Аспирант
|
|
Регистрация: 08.10.2014
Сообщений: 80
|
|
Это практически тоже самое, что и нажать кнопку на audio controls. Мне надо, чтобы пользователь нажал один раз где-нибудь кнопку в результате всё заработало, страница открылась, музыка играет и все действия на странице выполняются согласно сценария. У меня страница сделана пипа открытки, хочется сделать так, чтобы пользователь не делал лишних манипуляций. Важно чтобы воспроизведение музыку начиналась сразу после открытия страницы.
Последний раз редактировалось III, 04.03.2024 в 23:19.
|
|
05.03.2024, 00:01
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,796
|
|
Что-то я не догоняю, в чем разница между кнопкой на целевой странице и кнопкой на первой странице, которая будет открывать вторую?
Что там кнопка, что там. Единственное отличие в том, что первый вариант позволит проигрывать аудио, а второй - нет.
В любом случае, ваша задача не решаема способом, на котором вы настаиваете.
|
|
|
|