121 lines
3.8 KiB
HTML
121 lines
3.8 KiB
HTML
<!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("handlePromise(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>
|