test_ResumeAfterClearing_mp4.html (1479B)
1 <!DOCTYPE html> 2 <html><head> 3 <meta http-equiv="content-type" content="text/html; charset=windows-1252"> 4 <title>MSE: Don't get stuck buffering for too long when we have frames to show</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"><script class="testbody" type="text/javascript"> 11 12 SimpleTest.waitForExplicitFinish(); 13 14 runWithMSE(async (ms, v) => { 15 await once(ms, "sourceopen"); 16 ok(true, "Receive a sourceopen event"); 17 ms.addEventListener("sourceopen", () => ok(false, "No more sourceopen")); 18 const sb = ms.addSourceBuffer("video/mp4"); 19 ok(sb, "Create a SourceBuffer"); 20 sb.addEventListener("error", e => { 21 ok(false, "Got Error: " + e); 22 SimpleTest.finish(); 23 }); 24 await fetchAndLoad(sb, "bipbop/bipbop", ["init"], ".mp4"); 25 let p = once(v, "loadeddata"); 26 await fetchAndLoad(sb, "bipbop/bipbop", range(1, 3), ".m4s"); 27 await p; 28 // clear the entire sourcebuffer. 29 sb.remove(0, 5); 30 await once(sb, "updateend"); 31 v.play(); 32 // We have nothing to play, waiting will be fired. 33 await once(v, "waiting"); 34 p = once(v, "playing"); 35 await fetchAndLoad(sb, "bipbop/bipbop", range(1, 4), ".m4s"); 36 await p; 37 ms.endOfStream(); 38 await Promise.all([once(ms, "sourceended"), once(v, "ended")]); 39 SimpleTest.finish(SimpleTest); 40 }); 41 </script> 42 </pre> 43 </body> 44 </html>