当前位置: 首页> 科技> 名企 > 河北邯郸市疫情最新消息今天_网页此站点不安全_营销软件商城_郑州网站优化软件

河北邯郸市疫情最新消息今天_网页此站点不安全_营销软件商城_郑州网站优化软件

时间:2025/9/11 18:37:43来源:https://blog.csdn.net/nibabaoo/article/details/142974337 浏览次数:2次
河北邯郸市疫情最新消息今天_网页此站点不安全_营销软件商城_郑州网站优化软件

目录

1、实现思路 

2、代码


 

1、实现思路 

1、创建一个video元素 把视频放入video元素中,让它跳到指定的时间点

2、把这个时间点的画面画到canvas上

3、利用canvas提供的方法将图片转换为url和blob (url用来在页面上展示,blob用来上传至服务器)

2、代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>img {width: 200px;height: 200px;}</style></head><body><input type="file" name="" id="" /><script>const input = document.querySelector('input')input.onchange = async e => {// 获取文件const file = e.target.files[0]// 截取帧const result = await captureFrame(file, 2)console.log(result)// 展示到页面上const img = document.createElement('img')img.src = result.urldocument.body.appendChild(img)}// videoFile:视频文件  time:指定时间function captureFrame(videoFile, time = 0) {return new Promise((resolve, reject) => {const video = document.createElement('video')// 把二进制的数据文件转换成一个本地播放的地址video.src = URL.createObjectURL(videoFile)// 让视频跳转到指定时间video.currentTime = time// 进行自动播放video.autoplay = true// 由于浏览器的规则,自动播放可能会失败,需要调成静音播放video.muted = true// 等视频完全加载完再捕获帧video.onloadeddata = () => {// 确保视频已经加载完数据,稍微延迟一下再捕获帧setTimeout(() => {// 获取到当前时间点的画面const cvs = document.createElement('canvas')cvs.width = video.videoWidthcvs.height = video.videoHeightconst ctx = cvs.getContext('2d')ctx.drawImage(video, 0, 0, cvs.width, cvs.height)// 这里是异步的,需要用promise包裹起来cvs.toBlob(blob => {// blob是二进制数据,但是不能直接使用,需要转换为urlconst url = URL.createObjectURL(blob)resolve({blob,url,})})}, 10)}})}</script></body>
</html>

关键字:河北邯郸市疫情最新消息今天_网页此站点不安全_营销软件商城_郑州网站优化软件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: