zoukankan      html  css  js  c++  java
  • 关于embed的一些使用兼容

    因公司需求,要做一个扫描语音播报的功能,所以用到一些音频/视频标签

    考虑到   <embed>   标签对于ie的兼容性更好一些所以,我在这采用了   <embed>   标签,在使用中遇到的一些问题和处理方法,如有不对的地方和可以改进的地方欢迎指教

    问题1:在使用<embed>  标签使用中发现在其属性autoplayLoop属性在谷歌内核的浏览器

      <embed id="devUnknown" src="'+_src+'" width="0" height="0" loop="false" autostart="true"/>是未能控制音频就绪后是否播放,在谷歌内核浏览器中即使autostart='false'音频仍然会自动播放

      在网上有人提供出一种说在谷歌下autostart="0"或"1"可替代true跟false但我测试过发现然并卵,在谷歌下并发生变化,后续还根据网上遇到这个问题的小伙伴提供的方法发现并未适用,所以最后下面方法代替

    1 <audio  hidden="true" autoplay="true" loop="true">
    2   <source id="devUnknown" src="https://www.toonies.cn/Public/static/mp3/unsale.mp3" type="audio/ogg">
    3   <source src="https://www.toonies.cn/Public/static/mp3/unsale.mp3" type="audio/mpeg">
    4   您的浏览器不支持 audio 元素。
    5 </audio>

     2.<embed/>无法检测到音频/视频是否播放结束,同时如果我中途更换了<embed/>标签的src也会导致<embed/>不能再次进行播放,在w3c内和网上找了一段时间发现并没有直接再次启动的办法(火狐下可以做到更换src后切换音频/视频内容),则采用了下面的方法代替

    1 function voice(_src){
    2     /*_src为音频要播放的路径*/
    3     var _html = '<embed id="devUnknown" src="'+_src+'" width="0" height="0" loop="false" autostart="true"/>';
    4     if($('embed').attr('id')=='devUnknown'){
    5         //二次启动时删除原来的embed
    6         $('embed').remove();
    7     }
    8     $('body').append(_html);
    9 };
  • 相关阅读:
    七. 多线程编程3.主线程
    七. 多线程编程1.线程的概念
    六. 异常处理12.断言
    liunx 安装 mysql 5.6
    idea Unable to open debugger port (127.0.0.1:58006) Address already in use: JVM_Bind 的解决办法
    liunx 安装redis 4.0
    liunx 安装jdk1.8
    idea 去除xml文件sql语句背景色
    改变数据库和表编码
    mybatis 按in 函数参数顺序排序
  • 原文地址:https://www.cnblogs.com/jjq-exchange/p/8126087.html
Copyright © 2011-2022 走看看