最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - Best way to play sound with HTML5 and Javascript - Stack Overflow

programmeradmin5浏览0评论

I'm trying to play a sound and i have found two ways that works for me. Which is the better way and why? is a good idea add a "load" event listener?

First way:

$(document).ready(function() {  
  var audioElement = document.createElement('audio');  
  audioElement.setAttribute('src', 'sound.ogg');  
  audioElement.addEventListener("load", function(){  
      audioElement.play();  
  }, true);

  audioElement.play();  
});

Second way:

$(document).ready(function() {  
  audioElement = new Audio('sound.ogg');  
  audioElement.play();  
});

I'm trying to play a sound and i have found two ways that works for me. Which is the better way and why? is a good idea add a "load" event listener?

First way:

$(document).ready(function() {  
  var audioElement = document.createElement('audio');  
  audioElement.setAttribute('src', 'sound.ogg');  
  audioElement.addEventListener("load", function(){  
      audioElement.play();  
  }, true);

  audioElement.play();  
});

Second way:

$(document).ready(function() {  
  audioElement = new Audio('sound.ogg');  
  audioElement.play();  
});
Share Improve this question edited Dec 6, 2011 at 1:05 Andrew Whitaker 126k32 gold badges295 silver badges308 bronze badges asked Dec 6, 2011 at 0:52 Tomas Ramirez SarduyTomas Ramirez Sarduy 17.5k8 gold badges72 silver badges86 bronze badges 1
  • what about network source for audio in case new Audio()? – vinnitu Commented Sep 4, 2012 at 7:04
Add a ment  | 

2 Answers 2

Reset to default 2

You really should go with the first way (with load), because 'DOMReady' doesn't guarantee that the sound file finish downloading, just like with Image.

You really should use a feature detection system for this. I'd use Modernizr to test for HTML5 audio. That way you are only attempting to serve the audio to those who can get it with HTML5.

You can even test for HTML5 features and fallback on alternative if not found by using Modernizr. These alternatives are called "polyfills" and a list of these that Modernizr supports is here.

The benefit of doing it this way is that you are covering all your bases in terms of browser features. I pity the fools out there still using IE7.

发布评论

评论列表(0)

  1. 暂无评论