test_OnEvents.html (1340B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>MSE: live seekable range</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <script type="text/javascript" src="mediasource.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 13 SimpleTest.waitForExplicitFinish(); 14 15 runWithMSE(async (ms, v) => { 16 const receiveEvent = e => v["got" + e] = true; 17 18 const msevents = ["onsourceopen", "onsourceended"]; 19 msevents.forEach(e => ms[e] = () => receiveEvent(e)); 20 21 const sblistevents = ["onaddsourcebuffer", "onremovesourcebuffer"]; 22 sblistevents.forEach(e => ms.sourceBuffers[e] = () => receiveEvent(e)); 23 24 await once(ms, "sourceopen"); 25 const sb = ms.addSourceBuffer("video/webm"); 26 27 const sbevents = ["onupdatestart", "onupdate", "onupdateend", "onabort"]; 28 sbevents.forEach(e => sb[e] = () => receiveEvent(e)); 29 30 await fetchAndLoad(sb, "seek", [""], ".webm"); 31 sb.appendBuffer(await fetchWithXHR("seek.webm")); 32 ms.removeSourceBuffer(sb); // will fire abort and removesourcebuffer 33 ms.endOfStream(); // will fire sourceended 34 await once(ms, "sourceended"); 35 [...msevents, ...sbevents, ...sblistevents].forEach(e => ok(v["got" + e], "got " + e)); 36 SimpleTest.finish(); 37 }); 38 39 </script> 40 </pre> 41 </body> 42 </html>