forked from burg/timelapse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
video-preload.html
120 lines (102 loc) · 3.79 KB
/
video-preload.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE HTML>
<html>
<head>
<script src=media-file.js></script>
<script src=video-test.js></script>
<script>
var timer = null;
var movieInfo =
{
current : -1,
movies :
[
{
// should not buffer, 'preload' is 'none'
preload : "none",
shouldBuffer : false,
autoPlay : false,
description : "until 'play()' is called",
},
{
preload : "metadata",
shouldBuffer : true,
autoPlay : false,
description : "",
},
{
preload : "auto",
shouldBuffer : true,
autoPlay : false,
description : "",
},
{
// should buffer because 'autoplay' is set
preload : "none",
shouldBuffer : true,
autoPlay : true,
description : " because of 'autoplay'",
},
]
};
var timer = null;
function checkLoad()
{
var movie = movieInfo.movies[movieInfo.current];
logResult(true, "did not buffer automatically");
// start playback, which should force data to load
movie.shouldBuffer = true;
run("video.play()");
}
function loadedmetadata()
{
var movie = movieInfo.movies[movieInfo.current];
clearTimeout(timer);
logResult(movie.shouldBuffer, "buffered automatically");
openNextMovie();
}
function setupAttribute(attr, value)
{
if (value)
run("video.setAttribute('" + attr + "', '" + value + "')");
else
run("video.removeAttribute('" + attr + "')");
}
function openNextMovie()
{
consoleWrite("");
movieInfo.current++;
if (movieInfo.current >= movieInfo.movies.length)
{
endTest();
return;
}
var movie = movieInfo.movies[movieInfo.current];
var url = findMediaFile("video", "content/test");
var desc = "Will load with <em>'preload=" + movie.preload + "'</em>"
+ ", <b>should" + (movie.shouldBuffer ? "" : " not") + " </b> buffer automatically "
+ movie.description;
consoleWrite(desc);
setupAttribute('preload', movie.preload);
setupAttribute('autoplay', movie.autoPlay);
video.src = url;
if (movieInfo.current > 0)
video.load();
if (!movie.shouldBuffer)
timer = setTimeout(checkLoad, 200);
}
function start()
{
findMediaElement();
waitForEvent("error");
waitForEvent("loadstart");
waitForEvent("play");
waitForEvent('loadedmetadata', loadedmetadata);
openNextMovie();
}
</script>
</head>
<body onload="start()">
<p>Test to see if media loads automatically when 'preload' is specified.</p>
<video controls ></video>
</body>
</html>