范仁义html+css课程---9、video、audio、canvas和svg元素略讲

一、总结

一句话总结:

video:HTML5视频标签。
audio:html5音频标签。
canvas:绘制路径、矩形、圆形、字符以及添加图像。
svg:可伸缩矢量图形 (Scalable Vector Graphics)。

二、video、audio、canvas和svg元素

博客对应视频课程位置:9、video、audio、canvas和svg元素略讲
https://fanrenyi.com/video/2/15

1、video

video:HTML5视频标签 .

目前由于专利、商业竞争等原因各个浏览器对视频的支持格式各不相同,但是这个支持是动态变化的。

当前,video 元素支持三种视频格式:

    • Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件

支持的浏览器有:Firefox、Opera、Chrome

    • MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件

支持的浏览器有:IE9+、Chrome、Safari

虽然目前应用较广,单有专利保护,是收费在

    • WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件

支持的浏览器有:Chrome、Opera、Safari

专门为网页传播而设计在,清晰度高,压缩率也很高,并且开源免费,未来可能会成为主流。目前国外大在视频网站很多采用

video元素的属性

属性 属性值 描述
src url 要播放的视频的 URL地址。
width 正整数/百分比 设置视频播放器的宽度。
height 正整数/百分比 设置视频播放器的高度。
autoplay 空值/autoplay 视频在就绪后自动播放。
loop 空值/loop 循环播放。
controls 空值/controls 向用户显示控件,比如播放按钮

video简单实例

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<video width="640" controls autoplay>
<source src="22m.mp4" type="video/mp4">
您的浏览器不支持 video 属性。
</video>
</body>
</html>
 

2、audio

audio:html5音频标签

HTML5在不使用插件的情况下支持音频格式文件的播放,当然支持格式是有限的

当前,audio 元素支持三种音频格式:

  • Ogg 免费, 支持的浏览器:Firefox、Opera、Chrome
  • MP3 收费, 支持的浏览器: IE9+、Chrome、Safari
  • Wav 收费, 支持的浏览器: Firefox、Chrome、Safari

audio元素的属性

属性 属性值 描述
src url 要播放的 音频的 URL地址。
controls 空值/controls 向用户显示控件,比如播放按钮
autoplay 空值/autoplay 音频在就绪后自动播放。一般不设置该属性。
loop 空值/loop 循环播放。
preload auto/none/metadata 音频在页面加载时是否进行加载,并预备播放。一般不需要设置,使用默认值即可。

audio简单实例

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Audio简单测试</title>
</head>
<body>
<audio controls>
<source src="test.mp3" type="audio/mpeg">
您的浏览器不支持该音频格式。
</audio>
</body>
</html>

3、canvas

什么是canvas

HTML5的canvas元素是HTML5技术标准中最令人振奋的功能之一。它提供了一套强大的图形API,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。让开发者能够制作从文字处理到电子游戏的各类应用程序。由与canvas的操作需要用到JavaScript知识,而我们现在还没有讲到JavaScript,所以本章中我们只是学习canvas的基础操作。但是再后续课程中我们讲完JavaScript之后仍然会对canvas进行进一步的深入学习

canvas简单实例

 <!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>绘制扇形</title>
<style type="text/css">
canvas{background: #A9A9A0;margin-left: 200px}
</style>
</head>
<body>
<canvas id="canvas" width="800" height="600">
您浏览器暂不支持HTML5的canvas元素
</canvas>
<script type="text/javascript">
var canvas=document.getElementById('canvas');
var c=canvas.getContext('2d');
c.lineWidth=6;
c.strokeStyle="FFA500";
c.fillStyle="#FFA500";
c.moveTo(400,500)
c.arc(400,500,300,Math.PI*7/6,Math.PI*1.5,false)
//c.stroke();
c.beginPath();
c.moveTo(400,500);
c.arc(400,500,300,Math.PI*11/6,Math.PI*7/6,true);
//c.stroke();
c.fill()
c.beginPath();
c.fillStyle="#A9A9A0"
c.arc(400,500,150,Math.PI*7/6,Math.PI*1.5,false)
//c.stroke();
c.beginPath();
c.moveTo(400,500);
c.arc(400,500,150,Math.PI*11/6,Math.PI*7/6,true);
//c.stroke();
c.fill()
c.beginPath();
c.fillStyle="#000000";
c.font="55px 隶书"
c.fillText("纵",375,275);
c.beginPath();
c.strokeStyle="#800000";
c.lineWidth=2
c.font="55px 隶书"
c.strokeText("横",375,320); </script>
</body>
</html>

canvas效果

直接百度:canvas特效

4、svg

什么是SVG?

  • SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
  • SVG 用于定义用于网络的基于矢量的图形
  • SVG 使用 XML 格式定义图形
  • SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失

svg简单小实例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190">
<polygon points="100,10 40,180 190,60 10,60 160,180"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;"/>
</svg>
</body>
</html>

svg一般效果

直接百度:svg特效

5、svg和canvas的区别

canvas和svg的简单区别

语言:canvas是使用javascript语言来绘制图像,svg使用xml语言绘制图像
表现:canvas依赖像素,放大会失真,svg不依赖像素,放大不会失真

SVG 是一种使用 XML 描述 2D 图形的语言。

Canvas 通过 JavaScript 来绘制 2D 图形。

SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

下表列出了 canvas 与 SVG 之间的一些不同之处。

Canvas SVG
  • 依赖分辨率
  • 不支持事件处理器
  • 弱的文本渲染能力
  • 能够以 .png 或 .jpg 格式保存结果图像
  • 最适合图像密集型的游戏,其中的许多对象会被频繁重绘
  • 不依赖分辨率
  • 支持事件处理器
  • 最适合带有大型渲染区域的应用程序(比如谷歌地图)
  • 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
  • 不适合游戏应用
 

范仁义html+css课程---9、video、audio、canvas和svg元素略讲的更多相关文章

  1. 范仁义html+css课程---1、html基本结构

    范仁义html+css课程---1.html基本结构 一.总结 一句话总结: html标签中包含head标签和body标签,head标签里面主要写用户不可见的内容,比如字符集编码,body标签里面主要 ...

  2. 范仁义html+css课程---10、其它标签

    范仁义html+css课程---10.其它标签 一.总结 一句话总结: 了解iframe.Figure与Figcaption.address.progress.meter.datalist.field ...

  3. 范仁义html+css课程---8、新元素布局

    范仁义html+css课程---8.新元素布局 一.总结 一句话总结: 推荐用新标签(语义化的标签)来布局:header(头部),footer(尾部),aside(侧边栏),nav(导航),artic ...

  4. 范仁义html+css课程---7、表单

    范仁义html+css课程---7.表单 一.总结 一句话总结: 表单标签的话主要掌握form标签.input标签(以及input标签的不同的type值).select标签.textarea等标签,及 ...

  5. 范仁义html+css课程---6、表格

    范仁义html+css课程---6.表格 一.总结 一句话总结: 表格中最常用的元素就是table.tr.td.th,还有语义化的thead.tbody.tfoot标签 1.表格构成三个基本要素? t ...

  6. 范仁义html+css课程---5、列表

    范仁义html+css课程---5.列表 一.总结 一句话总结: 学会基本的使用有序列表.无序列表.定义列表,设置样式的话尽量通过css而不是属性 1.无序列表基本形式(实例)? ul标签包裹li标签 ...

  7. 范仁义html+css课程---4、文本标签

    范仁义html+css课程---4.文本标签 一.总结 一句话总结: 文本标签大致掌握一下,做到它站在你对面的时候最好认得,认不得也没关系,直接百度 1.ins标签.u标签和del标签 作用? ins ...

  8. 范仁义html+css课程---3、图片和超链接

    范仁义html+css课程---3.图片和超链接 一.总结 一句话总结: img标签是图片标签,定义 HTML 页面中的图像 a标签是超链接标签,用于从一个页面链接到另一个页面. 1.img标签要点? ...

  9. 范仁义html+css课程---2、html常用标签

    范仁义html+css课程---2.html常用标签 一.总结 一句话总结: html常用的标签有 标题标签.div.span.p.hr.br标签 等 1.html中的标题标签有哪些? <h1& ...

随机推荐

  1. 老生常谈之js深拷贝与浅拷贝

    前言 经常会在一些网站或博客看到"深克隆","浅克隆"这两个名词,其实这个很好理解,今天我们就在这里分析一下js深拷贝和浅拷贝. 浅拷贝 我们先以一个例子来说明 ...

  2. 英语insuraunce保险insuraunce单词

    English Alternative forms insuraunce Etymology From the older form ensurance, see also assurance. Pr ...

  3. 使用SAP CRM中间件XIF(External Interface)一步步创建服务订单

    tcode WE19, choose an existing IDOC in the system: Just change the existing IDOC Service Order ID to ...

  4. 关于升级.NetCore3.1启动运行项目之后无法运行之前版本的错误解决方案

    昨天在跟上微软的进度,更新VS版本升级.netcore3.1 之后成功运行之后发现,我无法运行之前版本的问题 都是报这种问题: 还有打开解决方案所有的项目都无法正常加载,都是"已卸载&quo ...

  5. 认识Redis

    认识的Redis 官方原文: Redis is an open source (BSD licensed), in-memory data structure store, used as a dat ...

  6. jmeter使用小结

    写这篇短文主要想详细介绍一下jmeter中取样器.逻辑控制器.前置处理器.后置处理器.定时器.配置元件等,可能看起来比较繁杂,其实里面很多操作是类似的,一篇总结和记录的博客: jmeter官方用户手册 ...

  7. sourcetree跳过登录的方法

    sourcetree是款免费的Git可视化工具,对于版本库较小的Git项目进行管理非常方便.但是sourcetree安装后第一次使用需要登录bitbucket帐号(最新版),由于某些原因登录帐号有困难 ...

  8. Httpd服务入门知识-Httpd服务常见配置案例之基于客户端来源地址实现访问控制

    Httpd服务入门知识-Httpd服务常见配置案例之基于客户端来源地址实现访问控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Options  1>.OPTIONS指 ...

  9. JVM垃圾收集算法之标记算法

    前言 总所周知,jvm的垃圾收集算法一般包括标记.清除.整理三个阶段,最近在看了有关于垃圾收集的标记算法,记录一下自己的理解. 垃圾收集中标记算法有两种:一种是引用计数法,一种是根搜索算法. 引用记数 ...

  10. asp.net中的参数传递:Context.Handler 的用法

    网上天天有人问怎么在webform页面之间传值,基本上来说,大家熟悉的是     (1)url字符串传值     (2)session传值     (3)直接读取server.transfer过来的页 ...