78 lines
2.4 KiB
HTML
78 lines
2.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<link rel="stylesheet" href="styles.css" />
|
|
<title>Test that seek() on the local video is reflected on the remote device</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/common/media.js"></script>
|
|
<script>
|
|
setup({ explicit_timeout: true });
|
|
</script>
|
|
<body>
|
|
<div id="pick-device">
|
|
<p>
|
|
Click the button below to prompt for a remote playback device and select
|
|
one!
|
|
</p>
|
|
<p>
|
|
Wait a few seconds for the video to initialize, play and seek.
|
|
</p>
|
|
<p>
|
|
<button id="prompt-button">Pick device</button>
|
|
</p>
|
|
</div>
|
|
<video src="/media/green-at-15.mp4" id="video"></video>
|
|
<div id="evaluate" style="display: none">
|
|
<p>
|
|
Did the playback on the remote device pause and show the following
|
|
timestamp? (can vary by some frames)
|
|
</p>
|
|
<p id="timestamp" style="font-weight: bold"></p>
|
|
<p>
|
|
<button id="yes">Yes</button>
|
|
</p>
|
|
<p>
|
|
<button id="no">No</button>
|
|
</p>
|
|
</div>
|
|
</body>
|
|
<script>
|
|
let v = document.getElementById("video");
|
|
|
|
async_test(t => {
|
|
let button = document.getElementById("prompt-button");
|
|
button.onclick = t.step_func(() => {
|
|
promise_test(() => {
|
|
return v.remote.prompt().then(() => {
|
|
v.play();
|
|
});
|
|
}, "Prompt resolves");
|
|
});
|
|
|
|
let timestampLabel = document.getElementById("timestamp");
|
|
v.ontimeupdate = () => {
|
|
let seconds = Math.floor(v.currentTime) + "";
|
|
let frames = Math.ceil((v.currentTime - seconds) * 30) + "";
|
|
timestampLabel.innerText =
|
|
seconds.padStart(2, "0") + ":" + frames.padStart(2, "0");
|
|
if (v.currentTime >= 2 && v.currentTime < 18) {
|
|
v.currentTime = 18;
|
|
}
|
|
if (v.currentTime >= 20) {
|
|
v.pause();
|
|
document.getElementById("evaluate").style.display = "block";
|
|
}
|
|
};
|
|
|
|
let evaluate = success =>
|
|
assert_true(success, "Video paused and has correct play position.");
|
|
|
|
document.getElementById("yes").onclick = t.step_func_done(() =>
|
|
evaluate(true)
|
|
);
|
|
document.getElementById("no").onclick = t.step_func_done(() =>
|
|
evaluate(false)
|
|
);
|
|
}, "Test that seek() on the local video is reflected on the remote device.");
|
|
</script>
|
|
</html>
|