Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 583|回复: 0

解决audio标签样式问题及ios自动播放问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-4-13 21:20:39 | 显示全部楼层 |阅读模式

    html代码如下,ios的audio标签好像不支持ogg文件播放,在微信端放了ogg音频文件,都无法播放,因此改用MP3文件。

    <!-- 音频 -->
    <audio controls="controls" autoplay="autoplay" id="mp3Btn" style="display: none;">
      <source src="resource/mp3.mp3" type="audio/mp3" />
    </audio>
    <!-- 音频 end-->

    设置为display:none,隐藏掉音频组件,增加额外组件样式,用于控制音频的播放。

    <div style="width: 50px;height: 50px; position: absolute; top: 20px;right: 10px;" class="btn-audio rotateClass">
    <img src="image/audio.png" style="    width: 50px;">
    </div>

    引入了一张音符图片,增加css3样式,使图片旋转起来,增加动态效果,其中rotateclass主要控制图片的旋转。代码如下

    .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);
            */
        }

    用JS控制,当歌曲播放时,图片自动旋转,歌曲停止后,图片旋转停止。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>

    至此,代码在安卓机和PC端上运行正常,但在IOS系统上会出现无法播放的情况。查阅了相关资料,需引入微信API接口,用JS控制代码如下:

    <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>

    至此阶段,经测试,代码运行正常。

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-14 08:20 , Processed in 0.069427 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表