Ответ 1
Вы действительно должны пойти первым путем (с load
), потому что "DOMReady" не гарантирует, что звуковой файл завершит загрузку, как и с помощью Image.
Я пытаюсь воспроизвести звук, и я нашел два способа, которые работают для меня. Что лучше и почему? хорошая идея добавить прослушиватель событий "load"?
Первый способ:
$(document).ready(function() {
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'sound.ogg');
audioElement.addEventListener("load", function(){
audioElement.play();
}, true);
audioElement.play();
});
Второй способ:
$(document).ready(function() {
audioElement = new Audio('sound.ogg');
audioElement.play();
});
Вы действительно должны пойти первым путем (с load
), потому что "DOMReady" не гарантирует, что звуковой файл завершит загрузку, как и с помощью Image.
Для этого вам действительно нужно использовать систему обнаружения признаков. Я бы использовал Modernizr для тестирования звука HTML5. Таким образом, вы только пытаетесь подавать звук тем, кто может получить его с помощью HTML5.
Вы можете даже проверить функции HTML5 и отменить альтернативу, если не найти с помощью Modernizr. Эти альтернативы называются "polyfills", и список из них, который поддерживает Modernizr, здесь.
Преимущество этого в том, что вы покрываете все свои базы с точки зрения функций браузера. Мне жаль, что дураки там все еще используют IE7.