【重构前端知识体系之HTML】HTML5给网页音频带来的变化

引言

音乐播放,相信大家都很熟悉,但是早在之前的音乐播放之前,你的浏览器会问你,是否下载flash插件。然而现在,估计一些年轻的开发者都不用了解flash是啥了。因为HTML5来了,它改变了这一切。

HTML5音频的播放方式

是的,HTML5带来了不止一种能够播放音频的方式。

使用插件

浏览器插件是一种扩展浏览器标准功能的小型计算机程序。

插件可以使用 object 标签 或者 embed 标签添加在页面上。

embed方式

embed定义一个外部的容器,用来装放MP3等音频文件。

例如

<embed height="50" width="100" src="demo.mp3">

效果

缺陷

  • embed标签在 HTML 4 中是无效的,因为它是HTML5新出的标签
  • 依赖浏览器的支持
  • 依赖插件的安装

obejct方式

obejct也可以定义一个外部的容器,用来装放MP3等音频文件。

例如

<object height="50" width="100" src="demo.mp3"></object>

效果

缺陷

  • 依赖浏览器的支持
  • 依赖插件的安装

audio方式

audio标签是HTML5专门为音频出的一个标签。推荐使用!

<audio src="horse.mp3" controls></audio>

效果

缺陷

  • embed标签在 HTML 4 中是无效的,因为它是HTML5新出的标签

  • 依赖浏览器的支持

最好的解决方案

上面讲了三种使用音频的方式,可以将一些结合起来使用。

示例

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

讲解

看到以上用到了三个标签,这样做的好处是audio会尝试用mp3 或 ogg 来播放音频,如果播放失败了,会回退到embed。

效果

显示的效果基本与audio一致!

audio标签

audio的属性

一些常用的audio属性,全局属性在这里就没有列出来来了。更多请到w3school查阅。

属性 描述
autoplay 设置或返回是否在加载完成后随即播放音频/视频
controls 设置或返回音频/视频是否显示控件(比如播放/暂停等)
loop 设置或返回音频/视频是否应在结束时重新播放
muted 设置或返回音频/视频是否静音
preload 设置或返回音频/视频是否应该在页面加载后进行加载
src 设置或返回音频/视频元素的当前来源

audio的事件

事件这是我们用来跟音频发生交互的重要武器。

同样的只给出部分事件,更多请到w3school查阅。

事件 描述
pause 当音频/视频已暂停时
play 当音频/视频已开始或不再暂停时
playing 当音频/视频在已因缓冲而暂停或停止后已就绪时
canplay 当浏览器可以播放音频/视频时
timeupdate 当目前的播放位置已更改时

来一个音频播放器的案例

讲了那么多,不就是等一个案例吗,来!

码上!

<!doctype html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1 user-scalable=0" />
<title>audio音频demo</title>
<style>
* {
margin: 0;
padding: 0;
} body {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-family: "微软雅黑"
} h1 {
width: 100%;
font-size: 1.5em;
text-align: center;
line-height: 3em;
color: #33942a;
} #audio {
width: 100%;
} .control-body {
display: flex;
align-items: center;
justify-content: center;
} #control {
width: 150px;
height: 150px;
border-radius: 200px;
border: none;
box-shadow: #888 0 0 8px;
} </style> </head> <body>
<script> function play() {
let audio = document.getElementById("audio");
if (audio.paused) {
audio.pasue();
} else {
audio.play();
}
} </script> <h1>audio音频播放demo</h1> <div class="control-body">
<button class="control" id="control" onclick="play()">开始</button>
</div> <audio id="audio" src="http://96.ierge.cn/15/235/471737.mp3"></audio> </body> </html>

总结

音频的确在现在的网页中用的十分平常了,使用的的方式也发生了很大的改变。后续写一个关于音频的demo案例!

重构前端知识体系,你要一起吗?

博客说明与致谢

文章所涉及的部分资料来自互联网整理,其中包含自己个人的总结和看法,分享的目的在于共建社区和巩固自己。

引用的资料如有侵权,请联系本人删除!

感谢万能的网络,W3C,菜鸟教程等!

感谢勤劳的自己个人博客GitHub学习GitHub

公众号【归子莫】,小程序【子莫说】

如果你感觉对你有帮助的话,不妨给我点赞鼓励一下,好文记得收藏哟!关注我一起成长!

所属专栏:重构前端知识体系(HTML)

幸好我在,感谢你来!

【重构前端知识体系之HTML】HTML5给网页音频带来的变化的更多相关文章

  1. 【重构前端知识体系之HTML】讲讲对HTML5的一大特性——语义化的理解

    [重构前端知识体系之HTML]讲讲对HTML5的一大特性--语义化的理解 引言 在讲什么是语义化之前,先看看语义化的背景. 在之前的文章中提到HTML最重要的特性,那就是标签.但是项目一大,标签多的看 ...

  2. Web前端知识体系精简

    Web前端技术由html.css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知 ...

  3. Web前端知识体系

    看到一篇不错的文章,拿来收藏和分享. 原文:http://mp.weixin.qq.com/s/UFTfdE7LYhHquWEzwZKLCQ Web前端技术由html.css和 javascript三 ...

  4. web前端知识体系总结

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  5. 自己总结的web前端知识体系大全【欢迎补充】

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  6. WEB前端知识体系脑图

    说在开始的话: 我上大学那会,虽说主要是学Java语言,但是web前端也稍微学了一些,那时候对前端也没多在意,因为涉入的不深,可以搞一个差不多可以看的界面就可以了,其他也没过多在意. 因为稍微了解一点 ...

  7. web前端知识体系大全

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  8. web前端知识体系小结(转)

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  9. 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

    前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. ...

随机推荐

  1. 自动化中不能犯的4个RPA错误-RPA学习天地

    自动化在客户支持中的使用预计在未来几年会加速. 根据Dimension Research的数据,2022年72%的客户互动将通过机器人流程自动化(RPA)等新兴技术进行.电话互动将从41%下降到12% ...

  2. 【LeetCode】代码模板,刷题必会

    目录 二分查找 排序的写法 BFS的写法 DFS的写法 回溯法 树 递归 迭代 前序遍历 中序遍历 后序遍历 构建完全二叉树 并查集 前缀树 图遍历 Dijkstra算法 Floyd-Warshall ...

  3. 【机器学*】k-*邻算法(kNN) 学*笔记

    [机器学*]k-*邻算法(kNN) 学*笔记 标签(空格分隔): 机器学* kNN简介 kNN算法是做分类问题的.思想如下: KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数 ...

  4. 1266 - Points in Rectangle

    1266 - Points in Rectangle    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...

  5. 破解C#反编译软件Reflector 11.1.0.2167(最新版)(附补丁下载)

    本文为原创作品,转载请注明出处,作者:Chris.xisaer E-mail:69920579@qq.com QQ群3244694 补丁下载地址:https://download.csdn.net/d ...

  6. HPU积分赛 2019.8.18

    A题 给出n个数,问这n个数能不能分成奇数个连续的长度为奇数并且首尾均为奇数的序列 Codeforces849A 题解传送门 代码 1 #include <bits/stdc++.h> 2 ...

  7. 为什么别人的 WordPress 网站那么快?

    越来越多的人使用 WordPress 来搭建网站了,W3techs 最新数据统计显示[1],截止到2021年11月3日,全网有43.0%的网站都是基于WordPress 搭建的.那么问题来了,为什么别 ...

  8. 【C\C++笔记】数组指针越界

    指针越界,t的数组指针越界,修改了c的内容. 使用指针时,必须规定指针移动的范围 #include <iostream> using namespace std; int main(){ ...

  9. 第十七个知识点:描述和比较DES和AES的轮结构

    第十七个知识点:描述和比较DES和AES的轮结构 这是密码学52件事中的第17篇.本周我们描述和比较DES和AES的结构. DES和AES都是迭代分组密码的例子.分组密码通过重复使用一个简单的轮函数来 ...

  10. The Many Faces of Robustness: A Critical Analysis of Out-of-Distribution Generalization (DeepAugment)

    目录 概 主要内容 ImageNet-R StreetView StoreFronts (SVSF) DeepFashion Remixed DeepAugment 实验结论 代码 Hendrycks ...