移动页面的背景音乐播放

移动页面的背景音乐播放

今年一年来做了大量的wap页面有些项目就要提供音乐的播放功能,那么h5就提供了专属的音乐播放标签audio,audio中有autoplaylooppreload的新属性是最经常用到内容。

第一次写的时候看到有这些新的属性以为问题就能解决,功能就能实现。现实告诉你不要太天真。

一般我们会每一页的右上方位置放两张音乐的状态图片,因此静态页面代码如下:

<div class="music">

    <span class="sakyMusic">

          <img src="img_on.png"  id="sakyMusicOn" class="spin" >

        <img src="img_off.png" id="sakyMusicOff" >

        <audio  class="video1"  autoplay  preload="auto">

               <source src="music.mp3"  type="audio/mpeg">

       </audio>

   </span>

</div>

当然这个还是需要样式的配合才能漂亮,因此css样式如下

@-webkit-keyframes rotate {

0%,

100% {

-webkit-transform: rotate(0deg);

}

100% {

-webkit-transform: rotate(360deg);

}

}

@keyframes rotate {

0%,

100% {

transform: rotate(0deg);

}

100% {

transform: rotate(360deg);

}

}

.music {

position: fixed;

top: 13px;

right: 13px;

width: 31px;

height: 31px;

z-index: 99999;

}

.spin {

-moz-animation: rotate 4s linear infinite;

-webkit-animation: rotate 4s linear infinite;

-o-animation: rotate 4s linear infinite;

-ms-animation: rotate 4s linear infinite;

animation: rotate 4s linear infinite;

}

#sakyMusicOn {

display: block;

}

#sakyMusicOff {

display: none;

}

这个时候就会有人提出来这个肯定不能自动循环播放,因为没有添加自动循环播放的属性 loop,哈哈是的这个时候是不能自动循环播放

那我把loop加在audio标签里面,测试下看看,不错安卓这个功能实现了,再看看ios,咦,什么原因部分ios没有播放,怎么回事?

原来:ios 为了节省用户流量,对于 audio 和 video标签的 preload 和 autopaly 标签 会自动拦截。。。。

那怎么办?

我用的jq,引得是1.6的版本

$(function(){

var j=1;

if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {              //对ios系统进行了半段

$('body').bind('touchstart',function() {                                       //只要滑动就播放

if ($('#sakyMusicOn').is(':visible')&&(j==1) ) {                          //防止每触下body音乐就重头播放

$('audio')[0].play();

$('#sakyMusicOff').hide();

$('#sakyMusicOn').show();

}

});

}

$('#sakyMusic').click(function(e){

e.preventDefault();

if ($('audio')[0].paused) {

alert(1)

$('audio')[0].play();

$('#sakyMusicOff').hide();

$('#sakyMusicOn').show();

} else {

alert(2)

$('audio')[0].pause();

$('#sakyMusicOff').show();

$('#sakyMusicOn').hide();

}

});

$('audio').bind('ended', function(){                        //音乐循环

$('audio')[0].play();

});

})

这样基本就把想要的效果实现。还请大牛指正。。。

参考

http://www.bubuko.com/infodetail-833618.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,337评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,805评论 0 2
  • transform、transition、animation分别代表着转换、过渡以及动画。从各自的名字我们就可以大...
    Ginkela阅读 3,881评论 0 12
  • “夏禾,你就暂时和我坐一起吧。”夏禾刚打好饭,就听见杨柳在叫她。夏禾端着餐盘小心翼翼地穿过长长的队伍,来到了...
    蔓草漾阅读 583评论 0 0
  • “豁~”楼道里传来一声熟悉的男中音,我猛然想起弟弟白天打电话说要回来拿衣服的。这该死的记忆力,说了要给他买水...
    女匪儿阅读 467评论 0 1