zoukankan      html  css  js  c++  java
  • 兼容IE的语音播放

    主要部分是用一个div,检测当前浏览器是否是IE,如果是就在div内生成一个bgsound标签,模拟播放背景音乐。如果是非IE浏览器,就在div里生成video标签。

    1.HTML内容,创建一个标签

    <object id="snd_chrome" width="0px" height="0px" type="audio/x-wav" data=""></object>

    2.先判断浏览器是否是IE或者Edge浏览器

    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串

    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器 

    var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器 

    var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;

    3.判断不同浏览器创建语音标签,函数参数(ID,语音播放路径,类型,是否循环播放);

    function audioplayer(id, url, type, loop){

        var audioplayer = document.getElementById(id);

        if(audioplayer!=null){

          document.body.removeChild(audioplayer);

        }

        if(isIE || isIE11 || isEdge){

            var player = document.createElement('bgsound');

            player.id = id;

            player.src = url;

            player.setAttribute('autostart', 'true');

            if(loop){

                player.setAttribute('loop', 'infinite');

            }

            document.body.appendChild(player);

        }else{

            var player = document.createElement('audio');

            player.id = id;

            player.setAttribute('autoplay','autoplay');

            if(loop){

              player.setAttribute('loop','loop');

            }

            document.body.appendChild(player);

            var source = document.createElement('source');

            source.src = url;

            source.type= type;

            player.appendChild(source);

        }

      } 

    4.非IE浏览器时,监听语音播放是否停止

    // 监听语音是否播放结束,谷歌版

    function audioListener(){

        //测试audio监听结束事件

        var audio=document.querySelector('audio');

            if(audio){

            audio.loop = false;

            audio.addEventListener('ended', function () { 

                //do something .....

            }, false);

        }

    }

    5.IE或者Edge浏览器使用的bgsound,暂时没有写出监听事件,大家一起加油!



    作者:爷爷的毛丫头
    链接:https://www.jianshu.com/p/405db661a23e
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    微信第三方平台开发之代小程序实现业务
    解决Chrome网页编码显示乱码的问题
    .Net Core 使用 System.Drawing.Common 在CentOS下报错
    CentOS安装nmap端口查看工具
    解决Nginx反向代理不会自动对特殊字符进行编码的问题 如gitblit中的~波浪线
    Centos7最小安装化后安装图形界面
    手把手教您在 Windows Server 2019 上使用 Docker
    windows10下安装docker报错:error during connect
    git删除远程分支
    linux下shell显示git当前分支
  • 原文地址:https://www.cnblogs.com/panchanggui/p/14868171.html
Copyright © 2011-2022 走看看