~mmach/netext73/webkit2gtk

« back to all changes in this revision

Viewing changes to Tools/TestWebKitAPI/Tests/WebKit/getUserMedia-webaudio.html

  • Committer: mmach
  • Date: 2023-06-16 17:21:37 UTC
  • Revision ID: netbit73@gmail.com-20230616172137-2rqx6yr96ga9g3kp
1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html>
 
2
<html>
 
3
    <head>
 
4
        <script>
 
5
async function capture()
 
6
{
 
7
    try {
 
8
        const stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: false });
 
9
        internals.setMockAudioTrackChannelNumber(stream.getAudioTracks()[0], 2);
 
10
 
 
11
        var audioContext = new webkitAudioContext();
 
12
        var analyzer = audioContext.createAnalyser();
 
13
        analyzer.fftSize = 256;
 
14
        let source = audioContext.createMediaStreamSource(stream);
 
15
        source.connect(analyzer);
 
16
        analyzer.connect(audioContext.destination);
 
17
 
 
18
        for (let cptr = 0; cptr < 1000; cptr++) {
 
19
          internals.setMockAudioTrackChannelNumber(stream.getAudioTracks()[0], (cptr % 2) ? 1 : 2);
 
20
          await new Promise(resolve => setTimeout(resolve, 20));
 
21
        }
 
22
 
 
23
        source.disconnect(analyzer);
 
24
        analyzer.disconnect(audioContext.destination);
 
25
 
 
26
        window.webkit.messageHandlers.gum.postMessage("PASS");
 
27
    } catch (e) {
 
28
        window.webkit.messageHandlers.gum.postMessage("FAIL: " + e);
 
29
    }
 
30
}
 
31
        </script>
 
32
    <head>
 
33
 
 
34
    <body onload="capture()">
 
35
    </body>
 
36
</html>