zoukankan      html  css  js  c++  java
  • H5图形、音频、视频常用知识总结

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

    1、canvas绘制步骤

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

    <canvas id="myCanvas" width="400" height="400">
        您的浏览器不支持此功能
    </canvas>
    var canvas=document.getElementById("myCanvas");

    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、绘制图像

    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)
    }

    2.7、绘制文本

    context.font    //文本样式、大小、字体,默认值为normal
    context.textAlign    //文本对齐方式
    context.fillText(textString,startX,startY);    //填充文本(实心字)
    context.strokeText(text,startX,startY);    //文本描边(空心字)
    var m=context.measureText(textString)    //测量文本尺寸,返回一个尺度对象
    var width=m.width;

    3、图形变换

    context.translate(x,y)    //平移
    context.rotate(deg)    //旋转(定位为弧度)
    context.scale(x-ratio,y-ratio)    //缩放
    context.save()    //保存状态
    context.restore()    //恢复距离最近的状态,一个状态只能恢复一次

    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可以很轻松地播放视频和音频

    <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>

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

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

    注意事项:视频始终会保持原始的宽高比。意味着如果你同时设置宽高,并不是真正的将视频的画面大小设置为指定的大小,而只是将视频的占据区域设置为指定大小,除非你设置的宽高刚好就是原始的宽高比例。所以建议:在设置视频宽高的时候,一般只会设置宽度或者高度,让视频文件自动缩放,
    因为不同的浏览器所支持的视频格式不一样,为了保证用户能够看到视频,我们可以提供多个视频文件让浏览器自动选择
  • 相关阅读:
    修改root密码
    环境的搭建(四)--------samba服务
    16.统一异常处理(上)编写自定义处理函数
    15.集成限流功能到我们的服务中(花操作必看)
    14.go内置的rate包学习2(有花操作,必看)
    13.go内置的rate包学习1
    12.使用负载均衡的方式调用服务(随机方式)
    11.使用负载均衡的方式调用服务(轮询方式)
    10.根据命令行参数注册多个服务
    9.consul获取服务实例,调用测试
  • 原文地址:https://www.cnblogs.com/chuanzi/p/9579260.html
Copyright © 2011-2022 走看看