【NodeJS】html通过video和canvas同时播放视频

背景:

在某些特殊情况下,会使用Canvas作为容器展示视频,但是不是简单的为了播放视频,而是使用Canvas传递鼠标、键盘事件,发生了一个事件,事件则是传递到NodeJS服务器上,而做出相应的回复。本文只是做了一个例子,通过Canvas播放视频。

正文:

1、html页面:index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Video to Canvas Render</title>
</head>
<body>
    <video id="video" width="640" height="360" controls>
        <source src="video1.mp4" type="video/mp4">
        Your browser does not support the video tag.
    </video>
    <canvas id="canvas" width="640" height="360"></canvas>
    <script src="script.js"></script>
</body>
</html>

2、javascript:script.js

javascript 复制代码
document.addEventListener('DOMContentLoaded', function() {
    var video = document.getElementById('video');
    var canvas = document.getElementById('canvas');
    var ctx = canvas.getContext('2d');

    // 视频加载完成后,绑定事件监听器到视频的'playing'和'timeupdate'事件
    video.addEventListener('playing', function() {
        // 当视频开始播放时,绑定事件监听器到视频的'timeupdate'事件
        video.addEventListener('timeupdate', function() {
            // 在视频的每个帧可用时绘制到画布
            if (video.paused) return; // 如果视频暂停,则不绘制

            // 清除画布上的旧内容
            ctx.clearRect(0, 0, canvas.width, canvas.height);

            // 绘制视频帧
            ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
        });
    });
});

3、播放:

打开index.html的时候,会自动播放出来.

相关推荐
和和和5 小时前
🗣️面试官: 那些常见的前端面试场景问题
前端·javascript·面试
lxp1997415 小时前
vue笔记摘要-更新中
前端·vue.js·笔记
Oriental5 小时前
URL解码踩坑记录
前端·后端
San305 小时前
ES6+ 新特性解析:让 JavaScript 开发更优雅高效
前端·javascript·ecmascript 6
txp玩Linux5 小时前
rk3568上解析webrtc音频降噪算法处理流程
算法·音视频·webrtc
Heo5 小时前
简单聊聊webpack摇树的原理
前端·javascript·面试
浅笑离愁12346 小时前
VI视频输入模块学习
linux·音视频
少卿6 小时前
React 日历组件完全指南:从网格生成到农历转换
前端·react.js
程序员鱼皮6 小时前
Gemini 3.0 发布!
前端·ai编程·gemini
程序员鱼皮6 小时前
Gemini 3.0 炸裂发布!前端又死了???
前端·ai·程序员·互联网·代码