HTML中添加音乐video embed audio

做H5页面时需要添加背景音乐,方法如下

方式一:<video controls="" autoplay="" name="media"><source src="音乐" type="audio/mpeg"></video>

    这种方式显示播放器。

方式二:<embed src="music/We Don't Talk Anymore.mp3" autostart="true" loop="true" hidden="true"></embed>
    这个方式主要是支持的播放器多。一定程度上解决了浏览器兼容的问题。
 
方式三:<audio autoplay="" loop=""><source src="http://mi.0w0.im/Letter_Song.mp3"></audio>
    这个不显示播放器<audio>标签默认是隐藏的。
 
补充:

  问题1:苹果手机Safari和微信不播放音乐问题:

  用<audio> 加进去后用微信(iOS系统)浏览页面没有自动播放,点击暂停后再次点击播放正常,这就说明播放功能没有问题,将页面用iOS自带浏览器Safari打开后也不能自动播放;用android手机打开页面可以自动播放,那就证明代码本身是没有问题的,随后查了相关文献,是因为iOS Safari 限制不允许 audio autoplay, 必须用户主动交互(例如 click)后才能播放 audio, 因此我们通过一个用户交互事件来主动play一下audio应该就可以解决问题了。
  微信解决办法:

1、利用微信提供的接口:wx.config 和 wx.ready
先引入js文件

<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

在页面添加以下代码

wx.config({
    debug : false, // 这里为false
    appId : '', // 以下随意填写即可
    timestamp : (new Date()).getTime(),
    nonceStr : '',
    signature : '',
    jsApiList : ['checkJsApi'] 
    });
wx.ready(function() {
    audio.play();
    })

2:WeixinJSBridgeReady,对就这个东东可以搞定这个问题
代码如下:

var audo = document.getElementById('myAudio');
audo.play();
document.addEventListener('WeixinJSBridgeReady', function() {
    audo.play();
    }, false);

  问题2 $("#audio").play()报错 not a function 

  报错原因:play()方法属于DOM对象方法,$('#audio')为jquery对象

  解决办法:将jquery对象转换为DOM对象

  或者直接用原生方法写:document.getElementById('music-audio').play();

 

方式四:<bgsound src=背景音乐链接地址 loop=-1>
 
方式五:<audio src="music/We Don't Talk Anymore.mp3" id="aud" autoplay="autoplay" controls="controls" preload="auto"></audio>
 

说明:

1、使用autoplay="autoplay",则背景音乐将在音网页打开后就自动马上播放。

2、使用controls="controls",则为了在页面内显示显示控件,如播放按钮。

3、使用"loop="loop",则是为了是背景音乐重复播放。

4、使用preload="auto",则音频在页面加载的同时进行加载,并预备播放。

5、使用src="",即是在""内加入背景音乐的保存路径,如:src="web网页制作\03.mp3"。

注:若是想播放按钮隐藏,则使用以下语句:直接使用css 的display控制audio标签的显示

 

 

posted @ 2018-05-30 16:47  Jaye8584  阅读(2332)  评论(0编辑  收藏  举报