Is there a javascript way to check if a browser natively supports MP3?

gargantuan picture gargantuan · Oct 3, 2009 · Viewed 8.4k times · Source

If the browser can play MP3's then I'll use the audio tag to play a file. If not, I'll have to load in a flash player.

Answer

Eli Grey picture Eli Grey · Oct 3, 2009
var audio  = document.createElement("audio"),
canPlayMP3 = (typeof audio.canPlayType === "function" &&
              audio.canPlayType("audio/mpeg;codecs=mp3") !== "");

Edit:

If you don't want to use JavaScript (yes, this will work in browsers that support <audio> but not MP3), try this:

<audio controls="controls">
<source src="some-audio-file.mp3" type="audio/mpeg;codecs=mp3" />
<!-- if you have an Opus version, also include this:
<source src="some-audio-file.opus" type="audio/ogg;codecs=opus" />
-->
<!-- flash object goes here -->
</audio>

If you want auto-play, include an autoplay attribute on the audio element.