<!DOCTYPEHTML>
<html>
<head>
<title>Test that a non-autoplaying, non-playing element with a MediaStream source triggers canplay and shows a first frame</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="manifest.js"></script>
<script src="/tests/dom/canvas/test/captureStream_common.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
async function runTest() {
const canvas = document.createElement("canvas"); canvas.getContext("2d");
const helper = new CaptureStreamTestHelper2D(100, 100);
const video = document.createElement("video");
document.body.appendChild(video);
await Promise.race([
new Promise(r => video.oncanplay = r),
new Promise(r => setTimeout(r, 30000))
.then(() => Promise.reject(new Error("Canplay timeout"))),
]);
ok(true, "Got \"canplay\"");
is(video.readyState, video.HAVE_ENOUGH_DATA, "Expected readyState");
ok(helper.isPixel(helper.getPixel(video), helper.red), "First frame is rendered before playing");
helper.drawColor(canvas, helper.green);
await helper.pixelMustNotBecome(video, helper.green, { time: 1000,
infoString: "Rendered first frame doesn't change on new frame from source"
});
ok(helper.isPixel(helper.getPixel(video), helper.red), "First frame is still rendered");
video.play();
helper.drawColor(canvas, helper.blue);
await helper.pixelMustBecome(video, helper.blue, {
infoString: "New frame gets rendered when playing"
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.