当前位置: 首页 > news >正文

太原网站制作小程序分析一个网站

太原网站制作小程序,分析一个网站,crm管理系统定制,小程序小程序开发简言 有的时候想截取视频某一秒的视频画面。 手动截取操作麻烦#xff0c;还得时刻关注视频播放时间。 于是#xff0c;我搞出来了一个根据视频自动截取特定时间描述的页面。 效果 实现步骤 获取视频对象根据视频时长生成时间选择表单根据表单选择的时间和视频地址#x…简言 有的时候想截取视频某一秒的视频画面。 手动截取操作麻烦还得时刻关注视频播放时间。 于是我搞出来了一个根据视频自动截取特定时间描述的页面。 效果 实现步骤 获取视频对象根据视频时长生成时间选择表单根据表单选择的时间和视频地址利用canvas和vido元素生成某一帧的视频画面图片图片实现下载 源码 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title处理视频/titlestyle.container {margin: 50px;}/style /headbodydiv classcontainerdiv classupload__boxinput idupVideo nameupVideo typefile acceptvideo/* placeholder上传视频 //divdiv classvideo__boxvideo width800 height450 idvideo src controls/video/divdiv classselect__box/divdiv classanalyze__textul/ul/div/divscriptconst upVideoDom document.getElementById(upVideo)const videoDom document.getElementById(video)const selectBoxDom document.querySelector(.select__box)const TextListDom document.querySelector(.analyze__text)upVideoDom.addEventListener(change, (e) {const file e.target.files[0];let videoURL URL.createObjectURL(file)videoDom.src videoURLvideoDom.onloadedmetadata (e) {// 视频时长let videoDuration e.target.durationcreateTimeSelectDom(videoDuration)}})// 根据时长创建dom选择器function createTimeSelectDom(duration) {// 生成可选秒数列表let fragDom document.createDocumentFragment()let form document.createElement(form)form.id selectFormform.name selectFormif (duration 60) {let selectDom document.createElement(select)selectDom.multiple trueselectDom.form selectFormselectDom.name secondslet optionDom document.createElement(option)optionDom.innerText --选择秒数--optionDom.value selectDom.appendChild(optionDom)for (let i 0; i duration; i) {let item i.toString().padStart(2, 0)let optionDom document.createElement(option)optionDom.innerText itemoptionDom.value itemselectDom.appendChild(optionDom)}form.appendChild(selectDom)} else if (duration 3600) {let minute duration / 60let seconds duration % 60let miuteSelectDom document.createElement(select)miuteSelectDom.form selectFormmiuteSelectDom.name mintuelet optionDom document.createElement(option)optionDom.innerText --选择分--optionDom.value miuteSelectDom.appendChild(optionDom)for (let i 0; i minute; i) {let item i.toString().padStart(2, 0)let optionDom document.createElement(option)optionDom.innerText itemoptionDom.value itemmiuteSelectDom.appendChild(optionDom)}let secondsSelectDom document.createElement(select)secondsSelectDom.multiple truesecondsSelectDom.form selectFormsecondsSelectDom.name secondslet optionDom2 document.createElement(option)optionDom2.innerText --选择秒数--optionDom2.value secondsSelectDom.appendChild(optionDom2)for (let i 0; i 59; i) {let item i.toString().padStart(2, 0)let optionDom document.createElement(option)optionDom.innerText itemoptionDom.value itemsecondsSelectDom.appendChild(optionDom)}form.appendChild(miuteSelectDom)form.appendChild(secondsSelectDom)} else {}let submitInput document.createElement(input)submitInput.type submitsubmitInput.value 确定form.onsubmit formSubmitform.appendChild(submitInput)let resetInput document.createElement(input)resetInput.type resetresetInput.value 重置form.appendChild(resetInput)fragDom.appendChild(form)selectBoxDom.appendChild(fragDom)}function formSubmit(e) {e.preventDefault()let mintueV 00if (selectForm.mintue) {mintueV selectForm.mintue.value}let timeList []for (let v of selectForm.seconds.options) {if (v.selected) {timeList.push(${mintueV}:${v.value})}}// 生成帧图片TextListDom.children[0].innerHTML createFramepicture({url: videoDom.src, timeList})}// 生成帧图片列表function createFramepicture({ url, timeList, }) {if (!url || !timeList) returnlet time;const video document.createElement(video)video.width 160video.height 90video.crossorigin anonymousvideo.src urllet canvas document.createElement(canvas),width video.width,height video.height;canvas.width widthcanvas.height heightfunction* createTime() {for (let k 0; k timeList.length; k) {time timeList[k]let timeArr time.split(:)let currentTime Number(timeArr[0]) * 60 Number(timeArr[1])video.currentTime currentTime // 会导致 oncanplaythrough重新触发yield true}}let a createTime()video.oncanplaythrough () {if (time) {// 当time存在时再渲染避开video第一次加载成功analyzeVideo(video, time, canvas)}a.next()}}function analyzeVideo(video, time, canvas) {const ctx canvas.getContext(2d)// ctx.clearRect(0, 0, video.width, video.height)ctx.drawImage(video, 0, 0, video.width, video.height);let dataURL canvas.toDataURL(image/png)let li document.createElement(li)let img document.createElement(img)img.src dataURLlet p document.createElement(p)p.innerText 第${time}图let btn document.createElement(button)btn.innerText 下载btn.onclick () {downloadImg(dataURL, time)}li.appendChild(p)li.appendChild(img)li.appendChild(btn)const fragDom document.createDocumentFragment()fragDom.appendChild(li)TextListDom.children[0].appendChild(fragDom)}function downloadImg(src, time) {let a document.createElement(a)a.href srca.download frame picturea.click()}/script /body/html结果
http://www.dnsts.com.cn/news/231793.html

相关文章:

  • 技术网站有哪些村庄建设网站
  • wrix 网站开发自助服务器网站建设
  • 网站建设规划书有哪些内容绿化公司网站建设
  • 泉州建站费用网络营销顾问工作内容
  • 网站设计公司产品介绍百度快照推广是什么意思
  • 东营网站设计制作中国企业公示信息网官网
  • 一学一做教育视频网站有哪些内容工业和信息化部发短信是什么意思
  • 电子商务网站开发 php做非法网站
  • wordpress手机站点帮你省网站怎么做
  • 网站建设找美橙互联抖音小程序锚点解绑是什么意思
  • wordpress先生杭州seo价格
  • wordpress评论加入点赞湖南网站营销seo哪家好
  • 如何微信做演讲视频网站wordpress博客模板推荐
  • 军人运动会官方网站建设目标百度知道下载安装
  • 国外psd免费下载网站网站上的图是怎么做的
  • 崇文企业网站建设公司网站做优化公司
  • 江西省住房和城乡建设厅的网站对网络平台的优化有哪些建议
  • html网站模板免费下载app 手机软件
  • 广州网页建站企业网站维护合同
  • wordpress添加专题功能2个网站 同意内容 百度优化
  • 怎么建设网站多少钱wordpress有手机版么
  • 商城做网站哪家好绵阳市做公司网站
  • 网站开发公司成都深圳市住房和建设局李秀钗
  • 手机怎么管理wifi踢人驻马店做网站优化
  • 长沙哪家做网站设计好网站一级域名和二级域名
  • 建网站培训机构设计公司注册需要什么条件
  • 郴州网站seo外包济宁网站建设流程
  • 绵阳建网站wordpress空间服务器
  • 购物网站首页模板中国建筑网上测评
  • 关键词查询网站红番茄 网站点评