Chcę przechwytywać klatkę z wideo co 5 sekund.Przechwytywanie klatek wideo z HTML5 i JavaScriptem
To jest mój kod JavaScript:
video.addEventListener('loadeddata', function() {
var duration = video.duration;
var i = 0;
var interval = setInterval(function() {
video.currentTime = i;
generateThumbnail(i);
i = i+5;
if (i > duration) clearInterval(interval);
}, 300);
});
function generateThumbnail(i) {
//generate thumbnail URL data
var context = thecanvas.getContext('2d');
context.drawImage(video, 0, 0, 220, 150);
var dataURL = thecanvas.toDataURL();
//create img
var img = document.createElement('img');
img.setAttribute('src', dataURL);
//append img in container div
document.getElementById('thumbnailContainer').appendChild(img);
}
Problem mam jest 1 dwa obrazy generowane są takie same, a drugi obraz czas trwania-5 nie jest generowany. Dowiedziałem się, że miniatura jest generowana, zanim ramka wideo o określonej godzinie zostanie wyświetlona w tagu < video>
.
Na przykład, gdy video.currentTime = 5
, generowany jest obraz ramki 0s. Następnie ramka wideo przeskakuje do czasu 5s. Tak więc, gdy video.currentTime = 10
, generowany jest obraz ramki 5s.
Co jest theCanvas na swojej funkcji generateThumbnail? Czy możesz podać tagi HTML dla tego pytania, aby były bardziej przydatne? Próbuję zrobić to samo, ale nie jestem pewien, jak powinny być ogłaszane na stronie. Dzięki! – alejosoft