Javascript 如何使用java脚本在上传视频后生成三个不同的缩略图

Javascript 如何使用java脚本在上传视频后生成三个不同的缩略图,javascript,html,css,Javascript,Html,Css,document.getElementsByTagName('input')[0]。addEventListener('change',函数(事件){ var file=event.target.files[0]; var fileReader=newfilereader(); if(file.type.match('image')){ fileReader.onload=函数(){ var img=document.createElement('img'); img.src=fileReade

document.getElementsByTagName('input')[0]。addEventListener('change',函数(事件){
var file=event.target.files[0];
var fileReader=newfilereader();
if(file.type.match('image')){
fileReader.onload=函数(){
var img=document.createElement('img');
img.src=fileReader.result;
document.getElementsByTagName('div')[0].appendChild(img);
};
fileReader.readAsDataURL(文件);
}否则{
fileReader.onload=函数(){
var blob=new blob([fileReader.result],{type:file.type});
var url=url.createObjectURL(blob);
var video=document.createElement('video');
var timeupdate=函数(){
if(snapImage()){
video.removeEventListener('timeupdate',timeupdate);
video.pause();
}
};
video.addEventListener('loadeddata',function(){
if(snapImage()){
video.removeEventListener('timeupdate',timeupdate);
}
});
var snapImage=函数(){
var canvas=document.createElement('canvas');
canvas.width=video.videoWidth;
canvas.height=video.videoHeight;
canvas.getContext('2d').drawImage(视频,0,0,canvas.width,canvas.height);
var image=canvas.toDataURL();
var success=image.length>100000;
如果(成功){
var img=document.createElement('img');
img.src=图像;
document.getElementsByTagName('div')[0].appendChild(img);
revokeObjectURL(URL);
}
回归成功;
};
video.addEventListener('timeupdate',timeupdate);
video.preload='元数据';
video.src=url;
//在Safari/IE11中加载视频
video.muted=true;
video.playsInline=true;
video.play();
};
readAsArrayBuffer(文件);
}
});
div{
线高:200px;
}
img{
最大宽度:200px;
最大高度:200px;
填充物:5px;
垂直对齐:中间对齐;
文本对齐:居中;
}
@支架(对象配合:盖){
img{
宽度:200px;
高度:200px;
对象匹配:覆盖;
}
}

选择一个视频或图像文件


播放视频时,您可以使用画布捕捉图像,而不是使用此缩略图。您需要多个图像,然后调用该函数,该函数在播放视频后多次生成画布图像

请参见此处的示例:-

函数捕获(){
var canvas=document.getElementById('canvas');
var video=document.getElementById('video');
canvas.getContext('2d').drawImage(video,0,0,video.videoWidth,video.videoHeight);
}

捕获




嘿,Pranjal,我想出了一个解决方案,你可以在下面看到,希望它能帮助你:-

window.onload=函数(){
让video=document.getElementById('videoId');
让canvas=document.getElementById('canvasId');
设img=document.getElementById('imgId');
让伊姆金特;
video.addEventListener('play',函数(){
imgInt=setInterval(函数(){
绘画(视频、画布、img);
},1000);
},假);
清除间隔(imgInt);
};
功能绘图(视频、画布、img){
var context=canvas.getContext('2d');
context.drawImage(视频,0,0,canvas.width,canvas.height);
var dataURL=canvas.toDataURL();
setAttribute('src',dataURL);
}

您的浏览器不支持视频标记。

谢谢,如果不点击按钮,我如何只生成三个缩略图?@vinayakkyadav