HTML5 аудио в JavaScript: что я делаю не так? - PullRequest
1 голос
/ 05 июня 2011

Я пытаюсь создать звуковой тег 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();

Есть идеи?

Спасибо.

EDIT:

Вот то, что я в конечном итоге сделал для всех, кто интересуется. Работает в FF3.6, ff4, safari 5, ie9, chrome 11, opera 11.11 (pc)

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 Ответ

2 голосов
/ 05 июня 2011

<source> элементы не могут иметь атрибут preload, и вы забыли поместить кавычки вокруг свойства preload вашего аудиообъекта.

Итак, удалите setAttribute('preload', 'auto') из ваших sourceX объектов и поместите кавычки вокруг атрибута preload, например:

audioElement.preload = 'auto';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...