zoukankan      html  css  js  c++  java
  • 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=" 50px;height: 50px; position: absolute; top: 20px;right: 10px;z-index: 100" class="btn-audio rotateClass">
    <img src="__IMG__/audio.png" style="     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);
            */
        }
    

      

  • 相关阅读:
    Hibernate自动生成配置文件和实体类
    Hibernate中flush()的用法,以及延迟加载的介绍
    Hibernateibernate中的get()和load()方法
    Hibernate配置以及Hibernate初始化类
    java jstl标签
    java EL详解
    JSP内置对象的cookie和session实现简单登录界面
    JSP内置对象详解
    利用MVC模式简单设计jsp分页效果
    Can not issue data manipulation statements with executeQuery().解决方案
  • 原文地址:https://www.cnblogs.com/xiongdahei/p/7144700.html
Copyright © 2011-2022 走看看