Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему audio не воспроизводится при вызове play()?

Давид Мейстер Мастер (2060), на голосовании 19 часов назад
   console.log('---'); 
console.log(searchAudio[0]);
searchAudio[0].play();
console.log('fff');
Говорит что у audio нету метода play(), но как его может не быть и как это решить?
Голосование за лучший ответ
Андрей Высший разум (432715) 1 месяц назад
Потому, что воспроизведение звука заблокировано до того момента, пока посетитель сайта не нажмёт сам на кнопку Play. Слишком много было баннеров, посреди ночи врубающих звук на полную громкость.
Давид МейстерМастер (2060) 1 месяц назад
по сути это событие отрабатывается после нажатия, в кратце расскажу о функции, есть самописная функция audio, примерно так она выглядела до изменений
 function audio(path, play = true) { 
var audio = new Audio(path);
if ($('audio').length > 10) $('audio').slice(0, 5).remove();
$('#root').append(audio);
var volume = (audioStatus) ? globalVolume : 0;
audio.volume = volume;
if (play) audio.play();
return audio;
}
Но сегодня решил её оптимизировать подумав, "Зачем прогружать audio которые уже воспроизводились на странице?", и так появилась вторая версия (в следующем комментарии её отправлю), но почему то если с помощью new Audio делать play() то всё окей, а если с помощью условно $('audio').play() то оно уже так не работает, может есть решение такого?
 нужен вот такой код
но
он
будет работать
если
его
загрузить на сайт,хостинг
так оффлайн он не работает

 

Давид МейстерМастер (2060) 1 месяц назад
 function audio(path, play = true) {
var searchAudio = $(`audio[src="${path}"]`).filter(function () {
return this.paused;
});
var audio = (searchAudio.length) ? searchAudio[0] : new Audio(path);
// if ($('audio').length > 10) $('audio').slice(0, 5).remove();
$('#root').append(audio);
audio.volume = (audioStatus) ? globalVolume : 0;
if (play) audio.play();
return audio;
}
Редис АлександровичОракул (77779) 1 месяц назад
Великолепные были времена!
Похожие вопросы