<!DOCTYPE HTML >
<html >
<head >
<title >MSE: basic functionality</title >
<script 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();
runWithMSE(async (ms, el) => {
el.controls = true;
await once(ms, "sourceopen" );
ok(true, "Receive a sourceopen event" );
const audiosb = ms.addSourceBuffer("audio/mp4" );
const videosb = ms.addSourceBuffer("video/mp4" );
el.addEventListener("error" , e => {
ok(false, `should not fire ${e.type} event`);
SimpleTest.finish();
});
is(el.readyState, el.HAVE_NOTHING, "readyState is HAVE_NOTHING" );
must_not_throw(() => el.currentTime = 3, "setting currentTime is valid" );
is(el.currentTime, 3, "currentTime is default playback start position" );
is(el.seeking, false, "seek not started with HAVE_NOTHING" );
await Promise.all([
fetchAndLoad(audiosb, "bipbop/bipbop_audio" , ["init" ], ".mp4" ),
fetchAndLoad(videosb, "bipbop/bipbop_video" , ["init" ], ".mp4" ),
once(el, "loadedmetadata" ),
]);
const p = once(el, "seeking" );
el.play();
el.currentTime = 5;
is(el.readyState, el.HAVE_METADATA, "readyState is HAVE_METADATA" );
is(el.seeking, true, "seek not started with HAVE_METADATA" );
is(el.currentTime, 5, "currentTime is seek position" );
await p;
ok(true, "Got seeking event" );
await Promise.all([
once(el, "seeked" ),
fetchAndLoad(audiosb, "bipbop/bipbop_audio" , range(5, 9), ".m4s" ),
fetchAndLoad(videosb, "bipbop/bipbop_video" , range(6, 10), ".m4s" ),
]);
ok(true, "Got seeked event" );
ok(el.currentTime >= 5, "Time >= 5" );
ms.endOfStream();
await once(el, "ended" );
SimpleTest.finish();
});
</script >
</pre >
</body >
</html >
Messung V0.5 C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland