javascript - 在js中获取html视频流的宽度和高度
问题描述
我试图在 html 和 js 中获取视频流的宽度和高度,它总是返回零,我不想在视频标签中指定宽度和高度,并且总是有什么自然设备视频宽度和高度然后检查它的高度和宽度是js,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<video autoplay="true"></video>
<script>
let video = document.querySelector("video")
navigator.mediaDevices.getUserMedia({video: true})
.then((stream) => {
video.srcObject = stream
})
function vid() {
let vidCheck = document.querySelector("video")
console.log(vidCheck.videoWidth) // returns 0
console.log(vidCheck.videoWidth)//returns 0
}
vid()
</script>
</body>
</html>
解决方案
您正在使用正确的属性。您只需要等待视频播放即可使其具有大小:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<video autoplay="true"></video>
<script>
let video = document.querySelector("video");
navigator.mediaDevices.getUserMedia({ video: true }).then((stream) => {
video.srcObject = stream;
});
video.addEventListener("playing", () => {
console.log(video.videoWidth);
console.log(video.videoHeight);
});
</script>
</body>
</html>
推荐阅读
- ionic2 - 如何从 Ionic 2 或 Ionic 3 中的 url 下载文件?
- prometheus - probe_success 和 up 的区别?
- reactjs - 垂直 FlatList 内水平 FlatList 的动态高度
- python - Python检查变量是否高于上次循环
- three.js - 加载纹理中的工件 - 三个 js
- android - Android+mysql:连接类返回一个Null对象
- react-grid-layout - 如何在 React-Grid-Layout 中实现静态大小的网格,如 3x3
- docker - Docker卷启动后一直退出
- raspberry-pi - Raspberry Pi 3 在尝试更新 64GB 卡时返回输入/输出错误并导致系统崩溃
- string - print(f"...:")-statement too long - 把它分成多行而不弄乱格式