tor-browser

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

test_mediarecorder_record_audiocontext.html (1944B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test MediaRecorder Record AudioContext</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      7  <script type="text/javascript" src="manifest.js"></script>
      8 </head>
      9 <body>
     10 
     11 <script class="testbody" type="text/javascript">
     12 
     13 function startTest() {
     14  var context = new AudioContext();
     15  var buffer = context.createBuffer(1, 80920, context.sampleRate);
     16  for (var i = 0; i < 80920; ++i) {
     17    buffer.getChannelData(0)[i] = Math.sin(1000 * 2 * Math.PI * i / context.sampleRate);
     18  }
     19 
     20  var source = context.createBufferSource();
     21  source.buffer = buffer;
     22  source.loop = true;
     23 
     24  var dest = context.createMediaStreamDestination();
     25  source.connect(dest);
     26  var elem = document.createElement('audio');
     27  elem.srcObject = dest.stream;
     28  source.start(0);
     29  elem.play();
     30  let mMediaRecorder = new MediaRecorder(dest.stream);
     31  mMediaRecorder.onwarning = function() {
     32    ok(false, 'onwarning unexpectedly fired');
     33  };
     34 
     35  mMediaRecorder.onerror = function() {
     36    ok(false, 'onerror unexpectedly fired');
     37  };
     38 
     39  mMediaRecorder.onstop = function() {
     40    ok(true, 'onstop fired successfully');
     41    is(mMediaRecorder.state, 'inactive', 'check recording status is inactive');
     42    SimpleTest.finish();
     43  };
     44  mMediaRecorder.ondataavailable = function (e) {
     45    if (mMediaRecorder.state == 'recording') {
     46      is(mMediaRecorder.mimeType, 'audio/ogg; codecs=opus', 'Expected MediaRecorder mimetype');
     47      is(e.data.type, 'audio/ogg; codecs=opus', 'Expected Blob mimetype');
     48      ok(e.data.size > 0, 'check blob has data');
     49      mMediaRecorder.stop();
     50    }
     51  };
     52  try {
     53    mMediaRecorder.start(1000);
     54    is('recording', mMediaRecorder.state, "check record state recording");
     55  } catch (e) {
     56    ok(false, 'Can t record audio context');
     57  }
     58 }
     59 
     60 startTest();
     61 SimpleTest.waitForExplicitFinish();
     62 </script>
     63 </pre>
     64 </body>
     65 </html>