blob: 64ee4f9511589ff2dd5787f3e49028f2f676780a [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="/media-resources/video-test.js"></script>
<script src="/media/resources/media-source/webm/segment-info.js"></script>
<script src="media-source.js"></script>
<script>
var segmentHelper = new MediaSourceTest.SegmentHelper(WebMSegmentInfo.testWebM);
var doSeek = true;
var seekTime;
function onSourceOpen(event)
{
segmentHelper.addSourceBuffer();
segmentHelper.appendInitSegment();
segmentHelper.appendUntilEndOfStream(0);
MediaSourceTest.expectSourceState("ended");
}
function onTimeUpdate(event)
{
var videoTag = event.target;
if (videoTag.currentTime > 0.5 && doSeek) {
consoleWrite("EVENT(timeupdate) : seeking to " + seekTime.toFixed(2));
videoTag.pause();
videoTag.currentTime = seekTime;
doSeek = false;
}
}
function onSeeked(event)
{
consoleWrite("EVENT(seeked)");
var videoTag = event.target;
var currentTime = videoTag.currentTime;
MediaSourceTest.expectSourceState("ended");
if (Math.abs(currentTime - seekTime) > 0.001 ) {
failTest("Seeked to " + currentTime.toFixed(3) + " instead of " + seekTime.toFixed(3));
return;
}
videoTag.play();
}
function start()
{
findMediaElement();
waitForEventAndFail('error');
waitForEvent('webkitsourceopen', "", false, false, mediaSource);
waitForEvent('webkitsourceended', "", false, false, mediaSource);
waitForEvent('playing');
waitForEvent('seeking');
waitForEventAndEnd('ended');
mediaSource.addEventListener('webkitsourceopen', onSourceOpen);
video.addEventListener('timeupdate', onTimeUpdate);
video.addEventListener('seeked', onSeeked);
segmentHelper.init(video, function(success)
{
if (!success) {
failTest("Failed to load segment data");
return;
}
seekTime = segmentHelper.getTimeForMediaSegment(segmentHelper.MediaSegmentsToLoad - 1);
MediaSourceTest.setSrcToMediaSourceTestURL(video);
});
}
</script>
</head>
<body onload="start()">
<video autoplay controls> </video>
<p>Tests seeking with MediaSource API</p>
</body>
</html>