summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse.html
blob: dabe323cbe2226d32c63576199eda61c1aecb168 (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
<!doctype html>
<meta charset="utf-8">
<title>AudioBuffer can be reused between AudioBufferSourceNodes</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
function render_audio_context() {
  let sampleRate = 44100;
  let context = new OfflineAudioContext(
      2, sampleRate *  0.1, sampleRate);
  let buf = context.createBuffer(1, 0.1 * sampleRate, context.sampleRate);
  let data = buf.getChannelData(0);
  data[0] = 0.5;
  data[1] = 0.25;
  let b1 = context.createBufferSource();
  b1.buffer = buf;
  b1.start();
  let b2 = context.createBufferSource();
  b2.buffer = buf;
  b2.start();
  let merger = context.createChannelMerger(2);
  b1.connect(merger, 0, 0);
  b2.connect(merger, 0, 1);
  merger.connect(context.destination);
  return context.startRendering();
}
promise_test(function() {
  return render_audio_context()
    .then(function(buffer) {
      assert_equals(buffer.getChannelData(0)[0], 0.5);
      assert_equals(buffer.getChannelData(1)[0], 0.5);
      assert_equals(buffer.getChannelData(0)[1], 0.25);
      assert_equals(buffer.getChannelData(1)[1], 0.25);
    });
}, "AudioBuffer can be reused between AudioBufferSourceNodes");
</script>