zoukankan      html  css  js  c++  java
  • web网页音频声音标签大合集

      本文参考:php学习-HTML声音/音频 http://www.phpxuexi.net/html/html_sounds.html (这篇对web音频使用写的相当详细!可直接去看,下文是我对这篇的整理)

      在HTML中播放音频不怎么容易!必须要知道很多技巧确保音频文件支持所有(或尽可能多)浏览器(IE, Chrome, Firefox, Safari, Opera) 和所有(或尽可能多)设备(PC, Mac, Android, iPhone, Pad)。

      一、HTML 音频 - 最佳方案

        用HTML5<audio>元素+<embed>元素,才是最佳方案 。下例用<audio>元素播放MP3或播放OGG文件, 若失败, 代码会继续执行<embed>元素:

    <audio controls>
      <source src="horse.mp3" type="audio/mpeg">
      <source src="horse.ogg" type="audio/ogg">
      <embed height="50" width="100" src="horse.mp3">
    </audio>

        当今2021年及之后的新浏览器均已支持HTML5<audio>,<embed>作为老旧浏览器兼容性处理的备用方式,基本不会有不能播放音频文件的情况,可放心使用。若<embed>都不支持,要么电脑或手机是十几年前的,要么就是代码有问题。

        缺点:必须包含不同的文件格式(需把音频文件转换成不同的格式);<embed>元素若失败(浏览器都不支持时),不能显示文字提示的错误信息。

        也可酌情考虑在<embed>下面加一行文字提示信息(不推荐),如下:

    <audio controls>
      <source src="horse.mp3" type="audio/mpeg">
      <source src="horse.ogg" type="audio/ogg">
      <embed height="50" width="100" src="horse.mp3">
      您的浏览器不支持 audio 元素,请尽快更新浏览器版本以获得更好体验。
    </audio>

        这样当<audio>不支持时,<embed>仍生效可播放音频并紧跟提示文字信息(可能会影响页面布局);若<embd>也失败,则只剩文字提示信息(这种情况基本不存在)。这样主要作用就是督促用户更新浏览器,可作为一种选择吧。

      二、<audio>音频标签(HTML5新增)

        目前支持的3种音频文件格式:MP3、Wav、Ogg。可在<audio>和</audio>之间放文本提示信息,当浏览器不支持<audio>时会显示该信息。适用于当今浏览器。

        缺点:不兼容特别老旧的浏览器,需把音频文件转换成不同的格式。

    <!-- 方式一(推荐) -->
    <audio controls>
      <source src="horse.ogg" >
      <source src="horse.mp3" >
      您的浏览器不支持 audio 元素。
    </audio>
    <!-- 方式二 -->
    <audio src="/i/horse.ogg" controls="controls">
        您的浏览器不支持 audio 元素。
    </audio>

        其中,方式一指定一个MP3文件(支持IE, Chrome, Firefox 21+, Safari),一个OGG文件(支持旧版本Firefox和Opera),这是浏览器兼容性处理。方式二因文件格式单一,不同浏览器不同版本可能会小概率出问题。

      三、使用插件,通过<object>标签或<embed>标签

        插件是扩展浏览器功能的小程序。插件可用<object>标签或<embed>标签嵌入到网页中。这俩标签都是定义了一个引用外部内容(非HTML内容)的容器,包括来源(通常是非HTML资源), 依赖类型, 判断显示在浏览器中,或通过一个外部插件正常工作。下例展示在页面中嵌入一个MP3文件(样式可能会因浏览器不同变丑但不影响播放),<object>和<embed>分别展示:

    <object height="50" width="100" data="horse.mp3"></object>
    <embed height="50" width="100" src="horse.mp3">

        缺点:不同浏览器支持不同的音频格式,MP3文件支持IE, Chrome, Firefox 21+, 和 Safari,OGG文件支持旧版本的Firefox和Opera;若浏览器不支持文件格式,没有插件音频不会被播放;若用户的电脑没有安装相关插件,音频不会被播放。

        object和embed的区别:      
          1)<object>定义嵌入的对象。标签用于包含对象,比如图像、音频、视频、Java applets、ActiveX、PDF、Flash、插件。可规定对象的数据/参数以及用来显示和操作数据的代码。
            <embed>定义嵌入的内容,比如插件。
          2)为兼容不同浏览器,IE只支持对Object的解析;火狐,谷歌,Safari只支持对Embed的解析。
          3)object标签用clsid表示控件的唯一id,而embed标签用type表示插件的唯一名称。如flash插件type为:application/x-shockwave-flash,mp3播放插件type为audio/mpeg。
          4)为兼容多个浏览器,可通过ie浏览器动态加载Object标签,非ie浏览器动态加载embed标签;或在object标签里面嵌入embed标签。

      四、使用超链接<a>标签

        若超链接的地址是多媒体文件,大部分浏览器会自己调用“插件”播放该文件。下例超链接地址是MP3文件,若用户点击浏览器会调用插件进行播放:

    <a href="horse.mp3">Play the sound</a>

      另:1、若对音频/视频有更复杂的操作需求,请参考如下手册:

          菜鸟教程--HTML音频/视频DOM参考手册 https://www.runoob.com/tags/ref-av-dom.html

        2、关于使用 自动播放音频音效 的提示

          若你计划使用自动播放是音频音效,要注意了,因为大部分用户会觉得这很烦人。一部分用户也有可能在浏览器中关闭自动播放音频音效。最好建议是在用户 期望 听到声音的页面或页面某部分放入音频操作的元素,供用户主动选择是否播放,如用户点击一个链接听一首歌曲。

        3、HTML多媒体标签

          <embed>  定义一个嵌入对象
          <object>    定义一个嵌入对象
          <param>   定义一个对象参数
          <audio>    定义音频内容(HTML5新增)
          <video>    定义视频或电影(HTML5新增)
          <source>  为多媒体元素(<video>和<audio>)定义媒体来源(HTML5新增)
          <track>     为多媒体元素(<video>和<audio>)定义文本跟踪(HTML5新增)

      至此结束。

      其他参考文章:html中object和embed标签的区别 https://blog.csdn.net/byxdaz/article/details/60467224  作者byxdaz

    小伙伴们如有更好解决方式或发现错误,欢迎来评论补充或纠正~~~谢谢 (^ - ^ )

  • 相关阅读:
    颠覆C#王权的“魔比斯环” — 实现AOP框架的终极利器
    使用.Net的CodeDOM技术实现语言无关的Code Wizard
    拆半查找的递归和非递归算法
    使用wxWidgets for C++从资源文件中静态装载图像
    全排列算法原理和实现
    得到第K个大的数算法研究
    用C#2.0实现网络蜘蛛(WebSpider)
    Php实现Js的escape方法
    google map 获取 地理定位
    将sqlserver表中的数据导出sql语句(转)
  • 原文地址:https://www.cnblogs.com/dengfenglai/p/14255220.html
Copyright © 2011-2022 走看看