tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_mediaElementAudioSourceNodeVideo.html (1529B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <meta charset="utf-8">
      4 <head>
      5  <title>Test MediaElementAudioSourceNode before "loadedmetadata"</title>
      6  <script src="/tests/SimpleTest/SimpleTest.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 SimpleTest.waitForExplicitFinish();
     13 
     14 var video = document.createElement("video");
     15 function test() {
     16  video.src = "audiovideo.mp4";
     17 
     18  var context = new AudioContext();
     19  var complete = false;
     20 
     21  video.onended = () => {
     22    if (complete) {
     23      return;
     24    }
     25 
     26    complete = true;
     27    ok(false, "Video ended without any samples seen");
     28    SimpleTest.finish();
     29  };
     30 
     31  video.ontimeupdate = () => {
     32    info("Timeupdate: " + video.currentTime);
     33  };
     34 
     35  var node = context.createMediaElementSource(video);
     36  var sp = context.createScriptProcessor(2048, 1);
     37  node.connect(sp);
     38 
     39  // This test ensures we receive some nonzero samples when we capture to
     40  // WebAudio before "loadedmetadata".
     41  sp.onaudioprocess = e => {
     42    if (complete) {
     43      return;
     44    }
     45 
     46    var buf = e.inputBuffer.getChannelData(0);
     47    for (var i = 0; i < buf.length; ++i) {
     48      if (buf[i] != 0) {
     49        complete = true;
     50        ok(true, "Got non-zero samples");
     51        SimpleTest.finish();
     52        return;
     53      }
     54    }
     55  };
     56 
     57  video.play();
     58 }
     59 
     60 if (video.canPlayType("video/mp4")) {
     61  test();
     62 } else {
     63  ok(true, "MP4 not supported. Skipping.");
     64  SimpleTest.finish();
     65 }
     66 
     67 </script>
     68 </pre>
     69 </body>
     70 </html>