muivideo默认第一帧为封面_视频封面设置为第一帧

  • Post author:
  • Post category:其他


方法1:

使用 canvas绘制

let canvas = document.createElement(‘canvas’)

video.addEventListener(‘loadeddata’, () => { // loadeddata 在第一帧数据加载完之后触发

canvas.width = elm.clientWidth // 设置 canvas 宽高与video容器一致

canvas.height = elm.clientHeight

canvas.getContext(‘2d’).drawImage(video, 0, 0, canvas.width, canvas.height)

/** getContext(‘2d’) 建立二维渲染上下文

* drawImage 在canvas上绘制图像,传入绘制到上下文的元素可以是:

* 1. CSSImageValue

* 2. HTMLImageElement

* 3. SVGImageElement

* 4. HTMLVideoElement

* 5. HTMLVideoElement

* 6. HTMLCanvasElement

* 7. ImageBitmap

* 8. OffscreenCanvas

*/

elm.appendChild(canvas)

})

方法2:

在视频的标签的 src 属性后加上一个时间戳 #t,表示显示视频时从这个时间开始,默认其为显示的第一帧。在部分安卓机型上不生效

function addPreviewVideo(content) {

//添加preload = “metadata”

let contentAdded = content.replace(/preload.*?([^\s^\>]+)/g, ‘preload=”metadata”‘)

contentAdded.match(/)/g).forEach( item => {

contentAdded = item.indexOf(‘preload’) === -1 ?

contentAdded.replace(item,item.replace(/

})

//url末尾加上#t={seconds}

contentAdded.match(/|\/>)/g).forEach(item => {

let srcCurrent = item.match(/src=\”([^\”]*)\”/)[1]

contentAdded = contentAdded.replace(srcCurrent, srcCurrent + ‘#t=2’)

})

return contentAdded

}



版权声明:本文为weixin_39921023原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。