gpt4 book ai didi

html - 如何确保 Canvas 与html中的视频大小相同?

转载 作者:行者123 更新时间:2023-12-04 10:08:52 26 4
gpt4 key购买 nike

我在页面上显示一个本地视频和一个远程视频。我在手机上使用这个 html 页面。它工作正常。现在我必须使用鼠标(和使用 Canvas )在本地视频上绘制。但是我们没有指定视频元素的确切位置。因此无法考虑如何在本地视频上完全渲染 Canvas 。下面是文件。

HTML:

<!DOCTYPE html>
<html>

<head>
<link rel="stylesheet" href="/css/main.css" />
</head>

<body>
<h1>Realtime communication with WebRTC</h1>

<div id="videos">
<video id="localVideo" autoplay muted></video>
<video id="remoteVideo" autoplay></video>
</div>

</body>
</html>

CSS:
body {
font-family: sans-serif;
}

video {
max-width: 100%;
width: 320px;
}

任何人都可以让我知道如何在 localVideo 上完全覆盖 Canvas 。 Canvas 应与localVideo 位于同一位置,且大小应与localVideo 相同。

最佳答案

您可以使用 getBoundingClientRect() 方法获取有关当前元素位置的信息,然后使用此信息来定位 Canvas 元素。

检查以下示例:

document.addEventListener("DOMContentLoaded", function(){
const canvas = document.getElementById("canvasEl")
const vid = document.getElementById("localVideo");
const vidStyleData = vid.getBoundingClientRect();
canvas.style.width = vidStyleData.width + "px";
canvas.style.height = vidStyleData.height + "px";
canvas.style.left = vidStyleData.left + "px";
canvas.style.top = vidStyleData.top + "px";
});
body {
font-family: sans-serif;
}

video {
max-width: 100%;
width: 320px;
}
canvas {
position: absolute;
}
<!DOCTYPE html>
<html>

<head>
<link rel="stylesheet" href="/css/main.css" />
</head>

<body>
<h1>Realtime communication with WebRTC</h1>

<div id="videos">
<video id="localVideo" autoplay muted></video>
<video id="remoteVideo" autoplay></video>
</div>

<canvas id="canvasEl"></canvas>
</body>
</html>


Note that I set the position of the canvas to absolute using the css. If you want you can do this with javascript as well.

关于html - 如何确保 Canvas 与html中的视频大小相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61433700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com