I'm trying to grap some images of a video that is not played. Therefore I use the HTML5 .
Because I want to grab images that haven't been played, I set
video.currentTime = y;
If I now call the grap function it won't work.
Because the video.readyState
is 1 (and not 4).
If I add at the beginning of the grab function an alert();
it works.
I tried to loop until readyState == 4
with
while(true){
if(video.readyState == 4){
grapImage();
}
}
but this ends up in an endless loop.
So how can I wait until readyState == 4
?
Thanks
Ok I solved it with the event listener seeked
.
If you change the current time it changes to seeking
once it's finished it goes to seeked
. The loadedmetadata
event is also an option, but seeked
is the fastest one.
Thanks for your help.
Check out http://www.w3.org/2010/05/video/mediaevents.html for relevent events to listen for. Try listening to the 'loadedmetadata' event, rather than setting currentTime immediately after load(), as that indicates that all duration/timing information is loaded for a video ('canplay' also works).
video.addEventListener('loadedmetadata', function () { console.log('video duration information available'); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With