OLD | NEW |
---|---|
(Empty) | |
1 <!doctype html> | |
2 <html> | |
3 <head> | |
4 <title>Loop AudioBufferSourceNode, with buffer set after start</title> | |
5 <script> | |
6 var context = new AudioContext() || new webkitAudioContext(); | |
7 var normalSource; | |
8 var delayedSource | |
9 var buffer; | |
10 var request = new XMLHttpRequest(); | |
11 request.open("GET", "../../LayoutTests/webaudio/resources/media/128kbps-44 khz.mp3", true); | |
12 request.responseType = "arraybuffer"; | |
13 request.onload = function() { | |
14 context.decodeAudioData(request.response, | |
15 function(b) { | |
16 buffer = b; | |
17 document.getElementById("Start").disabled = false; | |
18 document.getElementById("StartDelayed").disabled = false; | |
19 }, | |
20 function () { | |
21 alert("Could not load file"); | |
22 }); | |
23 }; | |
24 request.send(); | |
25 | |
26 function normalStart() { | |
27 console.log("normalStart"); | |
28 normalSource = context.createBufferSource(); | |
29 normalSource.loop = true; | |
30 normalSource.buffer = buffer; | |
31 normalSource.connect(context.destination); | |
32 normalSource.start(context.currentTime + 2, 0); | |
33 } | |
34 function delayedStart() { | |
35 console.log("delayedStart"); | |
36 delayedSource = context.createBufferSource(); | |
37 delayedSource.loop = true; | |
38 delayedSource.connect(context.destination); | |
39 delayedSource.start(context.currentTime + 2, 0); | |
40 setTimeout(function () { | |
41 delayedSource.buffer = buffer; | |
42 }, 1000); | |
43 } | |
44 </script> | |
45 </head> | |
46 | |
47 <body> | |
48 <h1>Loop AudioBufferSourceNode, with buffer set after start</h1> | |
49 | |
50 <p>Test that looping an AudioBufferSource works correctly if the source is s tarted and the | |
51 buffer is assigned later, but before the source would start. This can't be easily tested in an | |
52 offline context because we can't precisely control when the assignment of th e buffer to the | |
53 source is done.</p> | |
54 | |
55 <p>Press the "Start" button for the normal case where the buffer is assigned before start.</p> | |
56 | |
57 <p>Press the "Start delayed" button for the case where the source is started and the buffer | |
58 assigned later.</p> | |
59 | |
60 <p>You should hear audio about 2 sec after pressing the button. It should c ontinue until you | |
61 press the corresponding Stop button.</p> | |
62 | |
63 <button id="Start" disabled onclick='normalStart()'>Start</button> | |
64 <button id="Stop" onclick="normalSource.stop()">Stop</button> | |
65 <br> | |
66 <button id="StartDelayed" disabled onclick='delayedStart()'>Start Delayed</b utton> | |
67 <button id="StopDelayed" onclick='delayedSource.stop()'>Stop Delayed Source< /button> | |
68 | |
69 | |
70 <hr> | |
71 <address><a href="mailto:rtoy@google.com">Raymond Toy</a></address> | |
hongchan
2015/02/12 18:36:58
What does this part do? Is this needed for the man
Raymond Toy
2015/02/12 21:36:42
Oops. My editor does that automatically. I'll rem
Raymond Toy
2015/02/13 20:07:06
Removed.
| |
72 <!-- Created: Tue Feb 10 15:14:56 PST 2015 --> | |
73 <!-- hhmts start --> | |
74 Last modified: Tue Feb 10 15:51:39 PST 2015 | |
75 <!-- hhmts end --> | |
76 </body> | |
77 </html> | |
OLD | NEW |