【NodeJS】mp4通过Canvas进行播放

本文介绍如何在HTML中使用Canvas容器来显示视频,通过Canvas捕获鼠标和键盘事件,并将这些事件传递到NodeJS服务器进行处理。实例展示了如何创建虚拟video元素,解决自动播放问题,并使用requestAnimationFrame绘制视频帧。
摘要由CSDN通过智能技术生成

背景:

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

正文:

1、html页面:index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=`, initial-scale=1.0">
    <title>canvas实现视频播放</title>
</head>
<body>
  <canvas id="canvas" width="640px" height="360px"></canvas>

  <script src="./index.js"></script>  
</body>
</html>

2、javascript:index.js

window.onload = () => {
  
  // 创建一个虚拟video元素
  const videoEl = document.createElement("video");
  videoEl.src = "XXX.mp4";

  // 重要:由于浏览器限制自动播放问题,则需要使用无声播放即可实现自动播放
  videoEl.muted = "muted"; 
  videoEl.autoplay = "autoplay";
  videoEl.loop = "loop";
  videoEl.play();


  // 创建canvas
  const canvas = document.getElementById("canvas");
  const cvsWidth = canvas.width;
  const cvsHeight = canvas.height;
  const ctx = canvas.getContext("2d");

  // 使用requestAnimationFrame定时器实现canvas绘制video每一帧
  const videoRender = () => {
    window.requestAnimationFrame(videoRender);
    ctx.clearRect(0, 0, cvsWidth, cvsHeight);
    ctx.drawImage(videoEl, 0, 0, cvsWidth, cvsHeight);
  };
  videoRender();
  
};

3、播放:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯癫的老码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值