微信 H5 video的loadeddata函数内使用canvas截取video的第一帧 内容为空
在video元素的loadeddata回调函数内使用canvas截取video的第一帧,代码如下:
const canvas = document.createElement('canvas')
canvas.width = video.videoWidth * 2
canvas.height = video.videoHeight * 2
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height)
const img = new Image()
img.setAttribute('id', 'posterImg')
img.setAttribute('crossOrigin', 'anonymous')
img.src = canvas.toDataURL('image/png')
img.style.width = '100%'
img.style.height = '100%'
img.style.verticalAlign = 'top'
videoWrap.appendChild(img)
在浏览器中可以正常截取第一帧画面
在微信的H5内生成的img使用PC调试时看到的是透明的图,没有内容,如下截图:
请问怎么破?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我是 设置了 preload属性 就可以获取到了
反正我最后是用
video.currentTime = 1
配合setTimeout
和Promise
勉强处理了,不过截取的图好像就是第一秒结束的瞬时帧而不是第一帧了。