H5图形、音频、视频常用知识总结

H5图形、音频、视频常用知识总结

1、canvas绘制步骤

1.1、根据id属性或其他选择器选中canvas元素对象:

<pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; position: relative; font-family: Consolas, Inconsolata, Courier, monospace; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);"><canvas id="myCanvas" width="400" height="400"> 您的浏览器不支持此功能 </canvas> var canvas=document.getElementById("myCanvas");</pre>

1.2、调用getContext方法获取上下文,创建Context对象,以获取绘制环境:
  var context=canvas.getContext("2d");
1.3、绘制图形

2、绘制图形

2.1、绘制路径型图形:
  context.beginPath() //新路径开始
  context.moveTo(startX,startY) //画笔移动到起点

context.lineTo(endX,endY) //直线要到达的终点
  context.arcTo(controlX,controlY,endX,endY,radius) //绘制两条切线之间的弧/曲线路径
  context.quadraticCurveTo(controlX,controlY,endX,endY) //绘制二次贝塞尔曲线路径
  context.bezierCurveTo(controlX1,controlY1,controlX2,controlY2,endX,endY) //绘制三次贝塞尔曲线路径
  context.rect(startX,startY,width,height) //绘制矩形
  context.arc(centerX,centerY,radius,startDeg,endDeg,dir) //绘制圆弧
  参数说明:圆心坐标,半径,起始弧度,终止弧度,方向,0度在圆心正右边,方向默认为false,顺时针方向
  context.arc(centerX,centerY,radius,0,2*Math.PI,flase) //绘制圆

context.lineCap //线条端点样式,三个可选值:butt/round/square
  context.lineJoin //线条连接样式,三个可选值:miter/round/bevel
  context.lineWidth //线条宽度属性
  context.strokeStyle //线条颜色属性

context.stroke() //上色,默认为黑色

2.2、颜色填充
  context.fillStyle //填充色属性
  context.fill() //填充颜色,默认填充颜色为黑色
  context.fillRect(startX,startY,width,height); //绘制填充式矩形

2.3、绘制阴影
  context.shadowColor //阴影颜色
  context.shadowBlur //阴影模糊度
  context.shadowOffsetX //阴影水平距离
  context.shadowOffsetY //阴影垂直距离

2.3、透明度:context.globalAlpha //取值0~1

2.4、渐变
  var clg=context.createLinearGradient(startX,startY,endX,endY); //设置线性渐变轴向
  var crg=context.createRadialGradient(X1,Y1,R1,X2,Y2,R2); //设置径向渐变同心圆

clg.addColorStop(position(0~1),color) //设置渐变轴各点的颜色,一般会设置2个或2个以上的点
  crg.addColorStop(position(0~1),color) //设置渐变直径各点的颜色,一般会设置2个或2个以上的点
  context.fillStyle=clg; //将渐变色用于填充色
  context.fillStyle=crg; //将渐变色用于填充色
  context.StrokeStyle=clg; //将渐变色用于线条颜色

2.5、图案填充
  var pat=contextcreatePattern(imgDomObj,repeatType)
  context.fillStyle=pat; //将图案设置为填充样式

2.6、绘制图像

<pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; position: relative; font-family: Consolas, Inconsolata, Courier, monospace; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);">var imageObj=new Image();
imageObj.src=urlString;
imageObj.onload=function(){
  context.drawImage(imageObj,startX,startY[,width,height])
  context.drawImage(imageObj,cutStartX,cutStartY,cutWidth,cutHeight,drawStartX,drawStartY,drawWidth,drawHeight)
}</pre>

2.7、绘制文本

<pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; position: relative; font-family: Consolas, Inconsolata, Courier, monospace; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);">context.font //文本样式、大小、字体,默认值为normal
context.textAlign //文本对齐方式
context.fillText(textString,startX,startY); //填充文本(实心字)
context.strokeText(text,startX,startY); //文本描边(空心字)
var m=context.measureText(textString) //测量文本尺寸,返回一个尺度对象
var width=m.width;</pre>

3、图形变换

<pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; position: relative; font-family: Consolas, Inconsolata, Courier, monospace; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);">context.translate(x,y) //平移
context.rotate(deg) //旋转(定位为弧度)
context.scale(x-ratio,y-ratio) //缩放
context.save() //保存状态
context.restore() //恢复距离最近的状态,一个状态只能恢复一次</pre>

4、图形组合

context.globalCompositeOperation //图形组合方式
当多个图形重叠时,默认为后来者居上

5、画布裁切

一旦裁切了画布中的某个区域,则画布的其他区域所绘制的图形都不可见
context.clip() //裁切距离最近闭合图形

6、清空区域

context.clearRect(startX,startY,width,height); //清空矩形区域

7、音频和视频

h5之前,可以通过flash来插入视频,但它有一些弊端: 1.先学习flash,增加使用成本 2.iphone,ipd,不支持flash

h5也可以利用embed标签插入视频:可以直接插入音频视频,本质是通过本机安装的音频视频播放软件来播放的。要求必须已经安装了这些软件 兼容性不好

使用h5可以很轻松地播放视频和音频

<pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; position: relative; font-family: Consolas, Inconsolata, Courier, monospace; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);"><audio controls autoplay>
<source src="text.ogg" type="audio/ogg"></source>
<source src="text.mp3" type="audio/mpeg"></source> 您的浏览器不支持此功能 </audio>

<video controls loop muted>
<source src="text.ogg" type="video/ogg"></source>
<source src="text.mp4" type="audio/mp4"></source> 您的浏览器不支持此功能 </video></pre>

常用方法:
  play() 开始播放音频/视频
  pause() 暂停当前播放的音频/视频
常用属性:
  src 设置或返回音频/视频元素的当前来源
  autoplay 设置或返回是否在加载完成后随即播放音频/视频
  controls 设置或返回音频/视频是否显示控件(比如播放/暂停等)
  loop 设置或返回音频/视频是否应在结束时重新播放
  paused 设置或返回音频/视频是否暂停
  volume 设置或返回音频/视频的音量
  defaultPlaybackRate 设置或返回音频/视频的默认播放速度
  playbackRate 设置或返回音频/视频播放的速度
  defaultMuted 设置或返回音频/视频默认是否静音
  muted 设置或返回音频/视频是否静音
  duration 返回当前音频/视频的长度(以秒计)
  ended 返回音频/视频的播放是否已结束

poster:指定视频还没有完全下载完毕,或者用户没有点击播放前显示的封面。 默认显示当前视频文件的第一副图像

<pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; position: relative; font-family: Consolas, Inconsolata, Courier, monospace; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);">注意事项:视频始终会保持原始的宽高比。意味着如果你同时设置宽高,并不是真正的将视频的画面大小设置为指定的大小,而只是将视频的占据区域设置为指定大小,除非你设置的宽高刚好就是原始的宽高比例。所以建议:在设置视频宽高的时候,一般只会设置宽度或者高度,让视频文件自动缩放,</pre>

<pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; position: relative; font-family: Consolas, Inconsolata, Courier, monospace; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);">因为不同的浏览器所支持的视频格式不一样,为了保证用户能够看到视频,我们可以提供多个视频文件让浏览器自动选择</pre>

转载于:https://www.cnblogs.com/chuanzi/p/9579260.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容