tor-browser

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

test_mediaStreamAudioDestinationNode.html (1652B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test MediaStreamAudioDestinationNode</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script type="text/javascript" src="webaudio.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8 </head>
      9 <body>
     10 <pre id="test">
     11 <audio id="audioelem"></audio>
     12 <script class="testbody" type="text/javascript">
     13 
     14 SimpleTest.waitForExplicitFinish();
     15 SimpleTest.requestFlakyTimeout("This test uses a live media element so it needs to wait for the media stack to do some work.");
     16 addLoadEvent(function() {
     17  var context = new AudioContext();
     18  var buffer = context.createBuffer(1, 2048, context.sampleRate);
     19  for (var i = 0; i < 2048; ++i) {
     20    buffer.getChannelData(0)[i] = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
     21  }
     22 
     23  var source = context.createBufferSource();
     24  source.buffer = buffer;
     25 
     26  var dest = new MediaStreamAudioDestinationNode(context);
     27  source.connect(dest);
     28 
     29  var elem = document.getElementById('audioelem');
     30  elem.srcObject = dest.stream;
     31  elem.onloadedmetadata = function() {
     32    ok(true, "got metadata event");
     33    setTimeout(function() {
     34      is(elem.played.length, 1, "should have a played interval");
     35      is(elem.played.start(0), 0, "should have played immediately");
     36      isnot(elem.played.end(0), 0, "should have played for a non-zero interval");
     37 
     38      // This will end the media element.
     39      dest.stream.getTracks()[0].stop();
     40    }, 2000);
     41  };
     42  elem.onended = function() {
     43    ok(true, "media element ended after destination track.stop()");
     44    SimpleTest.finish();
     45  };
     46 
     47  source.start(0);
     48  elem.play();
     49 });
     50 </script>