gecko-dev/dom/media/mediasource/test/test_BufferedSeek.html

64 строки
1.7 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<title>MSE: seeking in buffered range</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="mediasource.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
var updateCount = 0;
runWithMSE(function (ms, v) {
ms.addEventListener("sourceopen", function () {
var sb = ms.addSourceBuffer("video/webm");
fetchWithXHR("seek.webm", function (arrayBuffer) {
sb.appendBuffer(new Uint8Array(arrayBuffer));
sb.addEventListener("updateend", function () {
updateCount++;
/* Ensure that we endOfStream on the first update event only as endOfStream can
raise more if the duration of the last buffered range and the intial duration
differ. See bug 1065207 */
if (updateCount == 1) {
ms.endOfStream();
};
});
});
var target = 2;
v.addEventListener("loadedmetadata", function () {
if (v.currentTime != target &&
v.buffered.length &&
target >= v.buffered.start(0) &&
target < v.buffered.end(0)) {
v.currentTime = target;
}
});
var wasSeeking = false;
v.addEventListener("seeking", function () {
wasSeeking = true;
is(v.currentTime, target, "Video currentTime at target");
});
v.addEventListener("seeked", function () {
ok(wasSeeking, "Received expected seeking and seeked events");
is(v.currentTime, target, "Video currentTime at target");
SimpleTest.finish();
});
});
});
</script>
</pre>
</body>
</html>