首页 > 其他分享 >canvas绘制video

canvas绘制video

时间:2022-09-30 20:57:52浏览次数:46  
标签:canvas const height width video document 绘制

 

 

 

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>
    <style>         * {           margin: 0;           padding: 0;         }         body {           overflow: hidden;         }         .videoBox {           width: 100%;           height: 50vh;           position: relative;           top: 0;           right: 0;           left: 0;           bottom: 0;         }         img {           position: absolute;           display: block;           width: 100%;           height: 100%;         }         #btn {           position: absolute;           width: 50px;           height: 50px;           background-color: #ccc;           border-radius: 50%;           bottom: 10%;           left: 50%;           transform: translateX(-50%);           line-height: 50px;           text-align: center;         }         canvas {           width: 100%;           height: 50vh;         }         video {           display: none;         }         </style>
</head> <body>     <div class="videoBox">         <img id="poster" src="https://difluid-resources.oss-accelerate.aliyuncs.com/v1.0.4/images/product/coffee/banner.jpg" alt="">         <video id="video"           preload="auto"           playsinline="true"           x-webkit-airplay="true"           webkit-playsinline="true"           x5-video-player-type="h5"           x-video-orientation="h5"           x5-video-player-fullscreen="true"           muted="false"          src="https://difluid-resources.oss-accelerate.aliyuncs.com/v1.0.4/video/product/coffee/en/咖啡浓度仪.mp4"></video>         <canvas id="canvas"></canvas>         <div id="btn">点击</div>       </div>

    <script>
        const video = document.getElementById('video');         const palyBtn = document.getElementById('btn');         const canvas = document.getElementById('canvas');         const poster = document.getElementById('poster')
        // 初始化(创建)canvas         const ctx = canvas.getContext('2d')
        // 获取可视宽高         const screen_W = window.innerWidth || document.body.clientWidth         const screen_H = window.innerHeight || document.body.clientHeight         // 设置画布宽高(画布宽高,最好是根据设计视频所做实际宽高)         canvas.width = screen_W * 3 // 获取屏幕宽度作为canvas的宽度 这个设置的越大,画面越清晰(相当于绘制的图像大,然后被css缩小)         canvas.height = screen_H * 3 + 12
        // 绘制视频         palyBtn.addEventListener('click', function (e) {           e.preventDefault()           poster.style.display = 'none'           // 绘制背景           ctx.fillStyle = '#000'
          ctx.fillRect(0, 0, canvas.width, canvas.height)           ctx.drawImage(video, 0, 0, canvas.width, canvas.height);           if (video.paused) {             video.play()           } else {             video.pause()           }         })         video.addEventListener('play', playCallBack)         function playCallBack() {           if (video.paused) {              return;           }           captureFrame();           setTimeout(playCallBack, 40);         }         function captureFrame() {           ctx.drawImage(video, 0, 0, canvas.width, canvas.height)         }     </script>
</body> </html>

标签:canvas,const,height,width,video,document,绘制
From: https://www.cnblogs.com/xushan03/p/16746211.html

相关文章

  • Ohos-MPChart——支持多种图表绘制的组件
    Ohos-MPChart——支持多种图表绘制的组件​简介​Ohos-MPChart是OpenAtomOpenHarmony(简称“OpenHarmony”)系统显示各种图表视图的三方组件,用于声明式应用开发,提供了多种多......
  • 微信小程序 Canvas裁切案例
    源于https://ask.csdn.net/questions/7797682效果输入输出环境基础库版本2.20.x使用的新版的canvas(也不算新两三年了)。知识点canvasbase64转临时路径......
  • 使用python——matplotlib绘制的图表
    #绘制饼状图importmatplotlib.pyplotaspltimportnumpyasnpman=2245505woman=3254584man_prec=man/(man+woman)woman_prec=woman/(man+woman)labels=['男','女']col......
  • video.js问题总结
    video.js问题总结在vue项目中采用video.js作为视频播放组件。出现以下问题:无法播放(点击无效)如下代码,UI正常显示,点击播放按钮无法播放。<videoref="video"src="xxxxxx......
  • Editable FreeViewpoint Video
    使用分层神经表示的可编辑自由视点视频自由视点视频的生成对于沉浸式VR/AR体验非常重要,但是最近神经方法进展仍然缺乏在大动态场景下操纵视觉感知的编辑能力。为填补当前的......
  • 2022-09-28 "canvasToTempFilePath:fail SecurityError: Failed to execute 'toDataUR
    前言:uniapp+vue项目,调用uni.canvasToTempFilePath方法绘制画布,报错:"canvasToTempFilePath:failSecurityError:Failedtoexecute'toDataURL'on'HTMLCanvasElement':......
  • Matlab绘制特殊的图形
    1、指定坐标轴刻度值和标签自定义沿坐标轴的刻度值和标签有助于突出显示数据的特定方面。以下示例说明一些常见的自定义,例如修改刻度值的放置位置、更改刻度标签的文本和格......
  • 28、Python使用pyecharts绘制动态图
    基本思想:使用Python的pyecharts包进行中国疫情的动态图绘制;链接:https://pan.baidu.com/s/15oaBrsSGL_YNikRlwwaZZw 提取码:c460 复制这段内容后打开百度网盘手机App,操作......
  • video标签设置autoplay无效
    在html页面使用video标签的时候,给它设置了autoplay属性,即autoplay=“autoplay”,发现没有什么效果;解决方法是:给video标签加上muted属性就可以自动播放了,静音的意思;......
  • 【OpenLayers笔记】绘制描边线
    letlayer=newVectorLayer();//新建一个绘线层letfeature=newFeature({geometry:newLineString([fromLonLat([114,24]),//线的点坐标......