I'm creating pages for a small web-based game which must have some background music playing. Those pages should be compatible with most desktop browsers, including IE8 (but we can ignore the mobile browsers).
Of course I'd like to allow the user to stop the music. And this is where it gets tricky.
Here's what I use currently (with jQuery) :
<audio id=main_audio autoplay=autoplay preload=auto loop=loop>
<source src=sounds/bgmusic.mp3 type=audio/mpeg />
<source src=sounds/bgmusic.ogg type=audio/ogg />
<embed hidden=true autostart=true loop=true src=sounds/bgmusic.mp3 />
</audio>
<div id=controls class=controls>
<a id=playpause class=play>Play/Pause</a>
</div>
<script>
function isPlaying(audio) {return !audio.paused;}
var a = document.getElementById('main_audio');
$('#playpause').on('click', function() {
if (isPlaying(a)) {
a.pause();
} else {
a.play();
}
});
</script>
This works fine in all browsers, but IE. (I'm on Windows XP so testing on IE8 currently.)
On IE8, the audio starts playing (which is good) but the controls don't do anything so it's impossible to stop the music (and restart it).
How can I make this script work for IE too? In other word, interact with the embed tag (but only in IE)?