H5移动端IOS音频自动播放解决

在移动端,H5的标签controls="controls" autoplay="autoplay",不支持此标签。

需要用JS代码来实现网页加载后音频自动播放功能。

html代码如下:

<!-- 音频 -->
<audio controls="controls" autoplay="autoplay" id="mp3Btn" style="display: none;">
  <source src="__IMG__/mp3.mp3" type="audio/mp3" />
</audio>
<!-- 音频 end-->
<div style="width: 50px;height: 50px; position: absolute; top: 20px;right: 10px;z-index: 100" class="btn-audio rotateClass">
<img src="__IMG__/audio.png" style="    width: 50px;">
</div>

JS代码如下:

<script type="text/javascript">
    $(document).ready(function(){ 
        //播放完毕
        $('#mp3Btn').on('ended', function() {
            console.log("音频已播放完成");
            $('.btn-audio').removeClass('rotateClass');
        });
        //播放器控制
        var audio = document.getElementById('mp3Btn');
        audio.volume = .3;
        $('.btn-audio').click(function() {

            event.stopPropagation();//防止冒泡
            if(audio.paused){ //如果当前是暂停状态
                $('.btn-audio').addClass('rotateClass');
                audio.play(); //播放
                return;
            }else{
                //当前是播放状态
                $('.btn-audio').removeClass('rotateClass');
                audio.pause(); //暂停''
            }
        });
    });
</script>

在安卓机上测试,此功能能够正常使用,页面加载完成后音频自动播放,并能够通过手动点击图片来控制音频播放和暂停。

但是ios由于对流量存在限制,IOS还是不支持页面加载完后自动播放,可以通过调用微信提供的接口,在微信中打开实现音频的自动播放功能。代码如下。:

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> 
<script type="text/javascript">
    document.addEventListener("WeixinJSBridgeReady", function () { 
        document.getElementById('mp3Btn').play(); 
        // document.getElementById('video').play(); 
    }, false);
</script>

同时为了隐藏播放器,已经给予控制播放器的伪按钮图片更好看的样式,通过CSS3来控制,让其在音频播放时候旋转,暂停时停止旋转。

css代码如下:

.rotateClass{

 -webkit-transform:translate3d(0,0,0);
    -moz-transform:translate3d(0,0,0);
    transform:translate3d(0,0,0);
    /* 设置动画,animation:动画名称 动画播放时长单位秒或微秒 动画播放的速度曲线linear为匀速 动画播放次数infinite为循环播放; */
    -webkit-animation:play 3s linear infinite;
    -moz-animation:play 3s linear infinite;
    animation:play 3s linear infinite;
}
@-webkit-keyframes play{
    0%  {
        /*
        水平翻转
        */
        /*-webkit-transform:rotateY(0deg);*/
        /*
        垂直翻转
        -webkit-transform:rotateX(0deg);
        顺时针旋转
        -webkit-transform:rotate(0deg);
        逆时针旋转
        -webkit-transform:rotate(0deg);
        */
        -webkit-transform:rotateX(0deg);
    }
    100% {
    	-webkit-transform:rotate(360deg);
        /* 水平翻转 */
        /*-webkit-transform:rotateY(360deg);*/
        /* 垂直翻转
        -webkit-transform:rotateX(360deg);
        顺时针旋转
        -webkit-transform:rotate(360deg);
        逆时针旋转
        -webkit-transform:rotate(-360deg);
        */
    }
}
@-moz-keyframes play{
    0%  {
    	-moz-transform:rotate(0deg);
        /*-moz-transform:rotateY(0deg);*/
        /*
        -moz-transform:rotateX(0deg);
        -moz-transform:rotate(0deg);
        -moz-transform:rotate(0deg);
        */
    }
    100% {
    	-moz-transform:rotate(360deg);
        /*-moz-transform:rotateY(360deg);*/
        /*
        -moz-transform:rotateX(360deg);
        -moz-transform:rotate(360deg);
        -moz-transform:rotate(-360deg);
        */
    }
}
@keyframes play{
    0%  {
    	 transform:rotate(0deg);
       /* transform:rotateY(0deg);*/
        /*
        transform:rotateX(0deg);
        transform:rotate(0deg);
        transform:rotate(0deg);
        */
    }
    100% {
    	 transform:rotate(360deg);
       /* transform:rotateY(360deg);*/
        /*
        transform:rotateX(360deg);
        transform:rotate(360deg);
        transform:rotate(-360deg);
        */
    }

  

 

posted @ 2017-07-10 10:52  熊大黑吖  阅读(18628)  评论(0编辑  收藏  举报