【发布时间】:2020-03-18 15:07:01
【问题描述】:
我正在尝试使用 javascript 创建视频的缩略图。我需要在视频加载时从视频创建缩略图并将其显示在画布中。示例代码如下。任何帮助,将不胜感激。
https://codepen.io/jeffin417/pen/vJxagb?editors=1010
var videoId = "video";
var scaleFactor = 0.25;
var snapshots = [];
document.getElementById(videoId).addEventListener(
"loadeddata",
function() {
for (var jk = 0; jk < 60; jk++) {
document.getElementById(videoId).currentTime = jk;
var canvas = capture(document.getElementById(videoId), scaleFactor);
canvas.onclick = function() {
window.open(this.toDataURL());
};
snapshots.unshift(canvas);
output.innerHTML = "";
}
output.appendChild(snapshots[0]);
},
false
);
function capture(video, scaleFactor) {
if (scaleFactor === null) {
scaleFactor = 1;
}
var w = video.videoWidth * scaleFactor;
var h = video.videoHeight * scaleFactor;
var canvas = document.createElement("canvas");
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext("2d");
ctx.drawImage(video, 0, 0, w, h);
return canvas;
}
function shoot() {
var video = document.getElementById(videoId);
var output = document.getElementById("output");
var canvas = capture(video, scaleFactor);
canvas.onclick = function() {
window.open(this.toDataURL());
};
snapshots.unshift(canvas);
output.innerHTML = "";
for (var i = 0; i < 4; i++) {
output.appendChild(snapshots[i]);
}
}
【问题讨论】:
-
您基本上拥有所需的一切。有什么问题?
-
嘿,谢谢哥们,这正是我要找的,也许我应该搜索 mroe 关键字,请把你的作为答案,我会接受的,
-
@pawel 我试图设置当前时间并捕捉视频,但异步不起作用,现在我有答案了
标签: javascript html reactjs