关键词:视频处理、音频处理、Canvas(画布)

一、视频处理

1、基本内容

1.1、使用HTML实现视频处理:

video标签

如果当前浏览器不支持video,可以在veido里面编写提示内

src - 引入视频文件的路径

autoplay - 自动播放视频

2)souce元素

1.2、video支持的视频格式

MP4 - 目前比较主流

OGG - 多用于移动端

WebM - 目前唯一支持超高清格式

1.3、video元素的属性

src - 视频路径

autoplay - 自动播放

controls属性 - 提供视频播放的控制面板,只有属性名,没有属性值

loop - 视频的循环播放

poster属性 - 在视频播放之前,显示一张图片

width/height - 设置显示视频的宽度和高度

preload - 预加载:

auto-(默认值)自动加载

none-不加载

metadata-只加载视频的基本信息(不含视频)

2、高级内容

2.1、 方法

play() - 播放视频

pause() - 暂停视频

load() - 重新加载音频/视频元素

canPlayType() - 判断当前浏览器是否支持指定视频格式

2.2、 事件

onplay - 当视频开始播放时调用

onpause - 当视频开始

onended - 当视频结束时被触发

onerror - 当视频错误时被触发

oncanplay - 当整个媒体可以顺利播放时,就会触发这个事件

oncanplaythrough - 不考虑整体状态,只要下载了一定的可放帧会会触发这个事件

onprogress - 用于更新媒体的下载进度,会周期性的触发

2.3、 属性

paused - 表示判断当前是否暂停,true表示暂停

ended - 表示判断当前视频是否播放完毕,true表示播放完毕

duration - 表示当前视频的时长,单位为s

currentTime - 表示当前视频播放的位置

2.4、 video元素

当video视频全屏时,浏览器会把video放到最前端,图片是有显示的,但被视频覆盖了

利用video事件完成广告效果

bug: 不能全屏

解决方案:

等到HTML5更新

使用video元素提供的高级编程自己实现

使用目前封装好的video的JS库 video.js

3、代码示例

您的浏览器不支持播放该格式视频

var btn = document.getElementById('btn');

btn.onclick = function(){

var video = document.getElementsByTagName('video')[0];

//paused当前视频是否暂停,暂停返回true

if (video.paused) {

video.play();

btn.innerHTML = "暂停";

}else{

video.pause();

btn.innerHTML = "播放";

}

video.onplay = function(){

console.log("====");

}

video.onended = function(){

console.log("++++");

}

}

4、运行结果

Paste_Image.png

二、音频处理

1、 audio元素

第一种:只支持一种音频格式

第二种: 同时引入多个音频格式

2、audio元素支持的音频格式

MP3 - 目前最主流

OGG

WAV

3、代码示例

三、Canvas(画布)

1、基本内容

1.1、 HTML5提供的新元素

1.2、 Canvas在HTML页面提供画布的功能

可以在页面中绘制各种图形

1.3、 canvas绘制的图形与HTML页面无关

无法通过DOM获取绘制的图形

无法为绘制的推行绑定DOM事件

1.4、 只能使用canvas提供的API

1.5、 主要用途

在HTML页面中绘制图标(例如柱状图、饼状图等)

网页游戏 - Flash技术

使用HTML5中的canvas

1.6. 如何使用canvas

1)在HTML页面中定义元素

默认宽度 300*150

效果上类似于div

问题:

定义canvas元素的宽度和高度

style设置-绘制图形被拉伸

属性方式 - 没有任何问题

2)获取元素

3)获取画布对象

getContext("2d");

参数类型是string类型,参数必须是“2d”或“3d”(固定写法)

4)使用Canvas提供的API

context.fileRect(10,10,100,100);

2、高级内容

1、API提供的工具非常广泛,包括创建图形、颜色、文本等

2、矩形

1)绘制实心矩形

fillRect(x,y,width,heigth)

2)绘制空心矩形

strokeRect(x,y,width,heigth)

3)清除指定区域的像素,类似于橡皮擦

clearRect(x,y,width,height)

3.、设置颜色 - 如果在创建图像时,没有指定颜色,那么所有图形都会使用纯黑色

1)声明形状线条的颜色

strokeStyle

2)声明形状内部区域的颜色

fillStyle

3)透明度属性。可以设置画布上图形的透明度

globalAlpha

HTML5的难度

HTML5的核心API相对来讲,都不难

HTML5的案例真正难在逻辑(js代码)

总结:HTML5离不开js

第二阶段js,抓紧复习

个人不建议 - 留级

4、 渐变效果 - canvas支持的渐变效果包括线性渐变或射线渐变,并且支持颜色转折点

1)在画布上创建一个渐变对象

var grd = context.createLinearGradient(x1,y1,x2,y2)

x1,y1 - 基准线的起点坐标值

x2,y2 - 基准线的终点坐标值

var grd = context.createRadialGradient(x1,y1,r1,x2,y2,r2)

x1,y1 - 第一个基准圆的元素坐标值

r1 - 第一个基准圆的半径

x2,y2,r2同上

返回一个渐变对象

2)给渐变对象指定渐变颜色值

addColorStop(position,color)

position - 指设置渐变颜色的位置(0-1)

3) 将渐变对象作为画布对象的颜色

context.fillStyle = grd;

4) 绘制矩形

context.fillRect(0,0,400,400);

5、代码示例

var canvas = document.getElementsByTagName('canvas')[0];

var context = canvas.getContext("2d");

function myCanvas() {

var r = Math.floor(Math.random()*256);

var g = Math.floor(Math.random()*256);

var b = Math.floor(Math.random()*256);

const WIDTH = canvas.width;

const HEIGHT = canvas.height;

var x = Math.random()*WIDTH;

var y = Math.random()*HEIGHT;

var width = Math.random()*WIDTH;

var height = Math.random()*HEIGHT;

//让图形生成在canvas里

if((x+width)>=WIDTH){

//重新生成

x = Math.random()*WIDTH;

width = Math.random()*WIDTH;

}

if((y+height)>=height){

y = Math.random()*height;

height = Math.random()*height;

}

context.strokeStyle = "rgb("+r+","+g+","+b+")";

context.strokeRect(x,y,width,height);

}

setInterval(myCanvas,1000);

6、运行结果

Paste_Image.png

html5 canvas代替flash,替代Flash技术最好的选择------HTML5相关推荐

  1. 数据可视化的实现技术和工具比较(HTML5 canvas(Echart)、SVG、webGL等等)

    http://www.cnblogs.com/zhangdi/p/3690284.html?utm_source=tuicool&utm_medium=referral 最近一直在研究数据可视 ...

  2. h5的横线_使用HTML5 Canvas绘制直线或折线等线条的方法讲解

    HTML5 Canvas基本概念讲解html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏 ...

  3. html5 canvas绘制图形,html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  4. 9个非常有趣的HTML5 Canvas动画特效合集

    HTML5技术正在不断的发展和更新,越来越多的开发者也正在加入HTML5阵营,甚至在移动开发上HTML5的地位也是越来越重要了.HTML5中的大部分动画都是通过Canvas实现,因为Canvas就像一 ...

  5. 字 掉落 炫酷 网站_16个富有创意的HTML5 Canvas动画特效集合

    本文作者html5tricks,转载请注明出处 1.HTML5 Canvas高空瀑布下落湖面动画 HTML5 Canvas是一个神奇的网页技术,我们在Canvas画布上可以做任何有趣的事情.今天要分享 ...

  6. html5在线考试倒计时,html5 canvas 实现倒计时 功能

    function showTime(a) { var b = { id: "showtime", //canvasid x: 60, //中心点坐标 X轴; y: 60, //中心 ...

  7. html画星空,html5 canvas绘制全屏的星空背景动画特效

    特效描述:html5 canvas绘制 全屏星空背景 动画特效.html5 canvas背景动画,星空动画.连线区域跟随鼠标移动,外加碰壁检测 代码结构 1. 引入JS 2. HTML代码 var m ...

  8. 520表白html,html5 canvas全屏的520爱心表白网页代码

    特效描述:html5 canvas全屏 520爱心表白 网页代码.html5 canvas制作520表白日,全屏的爱心和表白语网页动画代码,浪漫的520爱心表白动画特效. 代码结构 1. HTML代码 ...

  9. canvas动画科技园_7个惊艳的HTML5 Canvas动画效果及源码

    HTML5非常强大,尤其是现在大部分浏览器都支持HTML5和CSS3,用HTML5制作的动画也多了起来.另外,Canvas上绘制图形非常简单,本文就分享了一些强大的HTML5 Cnavas动画,一起来 ...

最新文章

  1. 皮一皮:落伍了落伍了
  2. leetcode 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭
  3. 实现Modbus ASCII多主站应用
  4. Linux Framebuffer驱动剖析之中的一个—软件需求
  5. Java 接入微信小程序-登录+支付完整流程实战(环境搭建+源码),网友:看完后秒懂!...
  6. php二维数组引用变量,PHP二维数组的引用赋值容易犯的错误
  7. cad转shp 奥维_CAD转化为Shp
  8. altium designer(AD13)隐藏敷铜的方法
  9. snipaste_截图神器
  10. lucene索引源码分析1
  11. w7查看计算机每天开关机时间,WINDOWS7 怎么查看上次开关机时间
  12. 新人面试时候需要注意的写法
  13. sas 结果导出到excel 打不开解决办法
  14. uniapp Apple iOS 绑定解绑
  15. latex表格过长的解决办法之一:缩小字体
  16. Python实现圣诞树、打包exe过程和遇到的问题
  17. [转载]从春招到秋招,一个本科生的求职之路。
  18. 一文讲解Typescript中工具类型
  19. ROS从入门到精通5-5:局部路径规划插件开发案例(以DWA算法为例)
  20. matlab求解方程小程序,自学Matlab必备的60个小程

热门文章

  1. 996 马云再谈996:理性讨论比结论更重要!
  2. torch.zeros_like()和torch.ones_like()简要介绍
  3. 原生JS实现抛物线动画以及动态模糊效果
  4. 【合天网安】DoraBox靶场之Xss跨站
  5. forgot XCTF(你的疑问都可以在这里找到答案)
  6. Python3调用百度翻译API进行英文翻译
  7. java 时间轮算法_时间轮算法解析(Netty HashedWheelTimer源码解读)
  8. OSChina 周四乱弹 —— 你妈是洗衣机的亲妈
  9. 工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明
  10. Linux Mint 火狐浏览器改中文