audio和EMBED配合同时兼容IE8和safiri

来源:互联网 发布:农村淘宝 土豪村 编辑:程序博客网 时间:2024/06/03 19:25

在HTML5中通常使用audio标签来播放背景音乐

<audio id="musicAudio" loop="" src="./media/bg.mp3" autoplay preload></audio>

同时会出现两个问题:
1、IE8不支持audio属性
2、safiri必须等待用户的交互动作后才能播放media

解决方法如下:
1、IE8不支持audio属性
通过配合使用EMBED和audio来达到同时支持IE8和其它浏览器。
if lte IE 8能够在IE8之下使用EMBED标签即可。

<!--[if lte IE 8]><EMBED src="./media/bg.mp3" autostart="true" loop="true" width="0" height="0"><![endif]--><audio id="musicAudio" loop="" src="./media/bg.mp3" autoplay preload></audio>

2、safiri必须等待用户的交互动作后才能播放media
对于这个问题,可以使用js监听document的触摸事件,触碰就启动播放,我这里选用按下事件。
这里用了$选择器,所以需要自行添加jquery

<script>    $(document).on("touchstart mousedown", function() {        $("#musicAudio")[0].play();    })</script>
0 0