#javascript #html #audio
#javascript #HTML #Аудио
Вопрос:
Я пытаюсь создать аудио-тег HTML 5 в Javascript. У меня возникли проблемы с запуском и предварительной загрузкой:
var audioElement = document.createElement('audio');
var source1 = document.createElement('source');
source1.type= 'audio/ogg';
source1.src= 'assets/audio/ost.ogg';
source1.setAttribute("preload","auto");
audioElement.appendChild(source1);
var source2 = document.createElement('source');
source2.type= 'audio/mpeg';
source2.src= 'assets/audio/ost.mp3';
source2.setAttribute("preload","auto");
audioElement.appendChild(source2);
audioElement.preload = auto;
audioElement.load();
Есть идеи?
Спасибо.
Редактировать:
Вот что я в итоге сделал для тех, кому интересно. Работает в FF3.6, ff4, safari 5, ie9, chrome 11, opera 11.11 (ПК)
var audioElement = document.createElement('audio');
audioElement.setAttribute("preload", "auto");
audioElement.autobuffer = true;
var source1 = document.createElement('source');
source1.type= 'audio/ogg';
source1.src= 'assets/audio/ost.ogg';
audioElement.appendChild(source1);
var source2 = document.createElement('source');
source2.type= 'audio/mpeg';
source2.src= 'assets/audio/ost.mp3';
audioElement.appendChild(source2);
И затем:
audioElement.load();
Спасибо за твою помощь, Кевин.
Ответ №1:
<source>
у элементов не может быть атрибута preload
, и вы забыли заключить в кавычки свойство предварительной загрузки вашего аудиообъекта.
Итак, удалите setAttribute('preload', 'auto')
из ваших sourceX
объектов и заключите preload
атрибут в кавычки, вот так:
audioElement.preload = 'auto';
Комментарии:
1. @Yahreen Я не уверен, поддерживает ли 3.6 предварительную загрузку.