バックグラウンド ミュージックを再生する必要がある小さな Web ベースのゲームのページを作成しています。これらのページは、IE8 を含むほとんどのデスクトップ ブラウザーと互換性があるはずです (ただし、モバイル ブラウザーは無視できます)。
もちろん、ユーザーが音楽を停止できるようにしたいと思います。そして、ここが難しいところです。
これが私が現在使用しているものです(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>
これはすべてのブラウザーで正常に機能しますが、IE. (私は Windows XP を使用しているので、現在 IE8 でテストしています。) IE8 では、オーディオの再生が始まります (これは良いことです) が、コントロールは何もしないので、音楽を停止 (および再開) することは不可能です。
このスクリプトを IE でも動作させるにはどうすればよいですか? 言い換えれば、埋め込みタグと対話します (ただし IE のみ)?