Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2024, 11:05
III III вне форума
Аспирант
Отправить личное сообщение для III Посмотреть профиль Найти все сообщения от III
 
Регистрация: 08.10.2014
Сообщений: 80

Имитация нажатия на кнопку в audio controls.
Всем привет. Есть audio controls для воспроизведения музыки.
<audio controls class="muz">
  <source src="music/1.mp3" type="audio/ogg" />

Есть ли возможность с помощью JS имитировать нажатие на кнопку для начала воспроизведения музыки сразу после загрузки страницы? Знаю раньше была такая возможность, сейчас в браузере это отменили. Обойти этот запрет можно?
Всем спасибо за участие.
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2024, 13:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от III
сейчас в браузере это отменили. Обойти этот запрет можно?
Нет.
Вам дай волю - вы достанете этими звуками и видосами...
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2024, 16:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,498

Юзер если захочет может разрешить автозапуск для твоего сайта(слева у адресной строки кнопочка). А если не захочет - то и не надо.
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2024, 17:52
III III вне форума
Аспирант
Отправить личное сообщение для III Посмотреть профиль Найти все сообщения от III
 
Регистрация: 08.10.2014
Сообщений: 80

Да мне это надо не для сайта в интернете, а для автономной страницы. Пусть будет не audio controls, а простая обычная кнопка.

Последний раз редактировалось III, 03.03.2024 в 18:12.
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2024, 20:31
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,498

III, на локальной странице в FF ты точно также можешь разрешить автовоспроизведение. В хроме увы нет.

Простая обычная кнопка кликается button.click(). Но аудио это тебе не воспроизведёт.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 04.03.2024, 14:48
III III вне форума
Аспирант
Отправить личное сообщение для III Посмотреть профиль Найти все сообщения от III
 
Регистрация: 08.10.2014
Сообщений: 80

Спасибо, всё стало понятно. Значит программное нажатие на кнопку тут не сработает.

Последний раз редактировалось III, 04.03.2024 в 14:50.
Ответить с цитированием
  #7 (permalink)  
Старый 04.03.2024, 17:55
III III вне форума
Аспирант
Отправить личное сообщение для III Посмотреть профиль Найти все сообщения от III
 
Регистрация: 08.10.2014
Сообщений: 80

Снова здравствуйте. Хотелось бы уточнить ещё такой вопрос по этой теме.
Речь опять же об автономной форме. Если сделать дополнительно страницу HTML в папке где основная страница, поместить туда кнопку, которая будет перенаправлять на основную страницу, примерно так
<button id="button">
  <i class="fas fa-volume-up"></i>
</button>
<button onclick="window.open('ДР.html','_self');">
. В этой новой странице, от этой же кнопки включается музыка. Всё остальное выполняется на основной странице. Такой вариант возможен? Если да, то подскажите скрипт как это сделать.
Всем спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 04.03.2024, 21:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,734

По сути, единственное, что требуется от пользователя - кликнуть по странице, чтобы разрешить проигрывать аудио.
Если очень хочется запустить медиа на странице, то почему не сделать как-то так?

<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.
Ответить с цитированием
  #9 (permalink)  
Старый 04.03.2024, 23:01
III III вне форума
Аспирант
Отправить личное сообщение для III Посмотреть профиль Найти все сообщения от III
 
Регистрация: 08.10.2014
Сообщений: 80

Это практически тоже самое, что и нажать кнопку на audio controls. Мне надо, чтобы пользователь нажал один раз где-нибудь кнопку в результате всё заработало, страница открылась, музыка играет и все действия на странице выполняются согласно сценария. У меня страница сделана пипа открытки, хочется сделать так, чтобы пользователь не делал лишних манипуляций. Важно чтобы воспроизведение музыку начиналась сразу после открытия страницы.

Последний раз редактировалось III, 04.03.2024 в 23:19.
Ответить с цитированием
  #10 (permalink)  
Старый 05.03.2024, 00:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,734

Что-то я не догоняю, в чем разница между кнопкой на целевой странице и кнопкой на первой странице, которая будет открывать вторую?
Что там кнопка, что там. Единственное отличие в том, что первый вариант позволит проигрывать аудио, а второй - нет.

В любом случае, ваша задача не решаема способом, на котором вы настаиваете.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как деактивировать кнопку после одного нажатия AnGera jQuery 3 26.07.2019 23:59
Запуск скрипт после нажатия на кнопку DEVIL Javascript под браузер 0 01.10.2018 20:01
Всплывающее окно после нажатия на кнопку в форме kolhoz jQuery 29 26.03.2015 16:55
Имитация нажатия на ссылку martinss AJAX и COMET 6 28.05.2012 20:35
имитация нажатия на кнопку syegorius Javascript под браузер 5 21.07.2011 14:30