summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/tests/mochitests/test_peerConnection_webAudio.html
blob: 1d695ecbfac137e7deea08ffbcef8621bc21e2e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!DOCTYPE HTML>
<html>
<head>
  <script type="application/javascript" src="pc.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript">
createHTML({
  bug: "1081819",
  title: "WebAudio on both input and output side of peerconnection"
});

// This tests WebAudio (a 700Hz OscillatorNode) as input to a PeerConnection.
// It also tests that a PeerConnection works as input to WebAudio as the remote
// stream is connected to an AnalyserNode and compared to the source node.

runNetworkTest(function() {
  const test = new PeerConnectionTest();
  test.audioContext = new AudioContext();
  test.setMediaConstraints([{audio: true}], []);
  test.chain.replace("PC_LOCAL_GUM", [
    function PC_LOCAL_WEBAUDIO_SOURCE(test) {
      const oscillator = test.audioContext.createOscillator();
      oscillator.type = 'sine';
      oscillator.frequency.value = 700;
      oscillator.start();
      const dest = test.audioContext.createMediaStreamDestination();
      oscillator.connect(dest);
      test.pcLocal.attachLocalStream(dest.stream);
    }
  ]);
  test.chain.append([
    function CHECK_AUDIO_FLOW(test) {
      return test.pcRemote.checkReceivingToneFrom(test.audioContext, test.pcLocal);
    }
  ]);
  return test.run();
});
</script>
</pre>
</body>
</html>