Я нашел код JavaScript для получения миниатюры видео с учетом его URL-адреса. Однако я нашел это только для YouTube и Vimeo. Кажется, никто не привел пример того, как это сделать с видео, которое предназначено для встраивания с тегом видео html5. Можно ли это сделать? Спасибо.
Как я могу использовать javascript для получения миниатюры видео html5?
Ответы (1)
Да, вы можете использовать видео в качестве источника изображения для холста. Просто оберните код как функцию, которая принимает видео и размер в качестве аргументов и возвращает элемент холста.
Видео должно быть загружено и находиться в кадре, который вы хотите сделать.
Примеры методов
function createThumb(video, w, h) {
var c = document.createElement("canvas"), // create a canvas
ctx = c.getContext("2d"); // get context
c.width = w; // set size = thumb
c.height = h;
ctx.drawImage(video, 0, 0, w, h); // draw in frame
return c; // return canvas
}
Холст можно вставить в DOM и использовать в качестве держателя изображения. Если вы предпочитаете элемент изображения, вам придется сделать еще пару шагов, а также обработать асинхронный характер загрузки изображения с помощью обратного вызова (или обещания):
function createThumb(video, w, h, callback) {
var c = document.createElement("canvas"), // create a canvas
ctx = c.getContext("2d"), // get context
img = new Image(); // final image
c.width = w; // set size = thumb
c.height = h;
ctx.drawImage(video, 0, 0, w, h); // draw in frame
img.onload = function() { // handle async loading
callback(this); // provide image to callback
};
img.src = c.toDataURL(); // convert canvas to URL
}
Если у вас возникли проблемы с размером видеокадра, вы можете заменить аргументы drawImage() следующим:
ctx.drawImage(video, 0, 0, video.videoWidth, video.videoHeight, 0, 0, w, h);
person
Community
schedule
12.06.2015