66 lines
2.0 KiB
HTML
66 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src=media-file.js></script>
|
|
<script src=video-test.js></script>
|
|
<script>
|
|
|
|
// The test.mp4 file has sync samples at the following presentation time stamps:
|
|
// 0.0000, 0.7968, 1.5936, 2.3904, 3.1872, 3.9840, 4.7808, 5.5776
|
|
|
|
function runTest()
|
|
{
|
|
findMediaElement();
|
|
waitForEvent('canplaythrough', canplaythrough);
|
|
|
|
// Other media files may have sync samples at completely different points, so
|
|
// explicitly use the .mp4 here.
|
|
video.src = "content/test.mp4";
|
|
}
|
|
|
|
function canplaythrough()
|
|
{
|
|
waitForEventOnce('timeupdate', seek1);
|
|
consoleWrite('Seek past the 4th sync sample:');
|
|
run('video.currentTime = 2.5');
|
|
}
|
|
|
|
function seek1()
|
|
{
|
|
testExpected('video.currentTime.toFixed(1)', 2.5);
|
|
consoleWrite('Test that fastSeek() past the currentTime will not result in a seek before the currentTime or past the seek time:');
|
|
waitForEventOnce('timeupdate', seek2);
|
|
run('video.fastSeek(2.6)');
|
|
}
|
|
|
|
function seek2()
|
|
{
|
|
testExpected('video.currentTime', 2.6, '<=');
|
|
testExpected('video.currentTime', 2.5, '>=');
|
|
consoleWrite('Seek before the 4th sync sample:');
|
|
waitForEventOnce('timeupdate', seek3);
|
|
run('video.currentTime = 2.3');
|
|
}
|
|
|
|
function seek3()
|
|
{
|
|
testExpected('video.currentTime.toFixed(1)', 2.3);
|
|
consoleWrite('Test that fastSeek() before the currentTime will not result in a seek past the seek time:');
|
|
waitForEventOnce('timeupdate', seek4);
|
|
run('video.fastSeek(2.2)');
|
|
}
|
|
|
|
function seek4()
|
|
{
|
|
testExpected('video.currentTime', 2.2, '<=');
|
|
endTest();
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<video controls></video>
|
|
<p>Test that fastSeek() commands work correctly.</p>
|
|
</body>
|
|
</html>
|