Preloading Video in JavaScript
It is often necessary to preload a video before you do anything with it. This is especially true when using video with HTML5 Canvas, because what you want to do often goes beyond the simple act of playing the video.
We are going to leverage the DOM and JavaScript to create a preload architecture that can be reused and expanded upon. We are still not using Canvas, but this process will lead directly to it.
To do this, we must first embed the video in the HTML page in the
same way we have done previously in this chapter. However, this time, we
are going to add <div>
with
the id
of loadingStatus
.
Note
In practice, you probably would not display the loading status on the HTML page.
This <div>
will report the
percentage of the video that has loaded when we retrieve it through
JavaScript:
<div>
<video
loop
controls
id=
"thevideo"
width=
"320"
height=
"240"
preload=
"auto"
>
<source
src=
"muirbeach.webm"
type=
'video/webm; codecs="vp8, vorbis"'
>
<source
src=
"muirbeach.mp4"
type=
'video/mp4; codecs="avc1.42E01E, mp4a.40.2"'
>
<source
src=
"muirbeach.ogg"
type=
'video/ogg; codecs="theora, vorbis"'
>
</video>
</div>
<div
id=
"loadingStatus"
>
0%</div>
In JavaScript, we need to create the same type of eventWindowLoaded()
function that we have
created many times previously in this book. This function is called when
the HTML page has finished loading. In eventWindowLoaded()
, we need to create two
listeners for two more events that are dispatched from the HTMLVideoElement
object: ...
Get HTML5 Canvas, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.