summaryrefslogtreecommitdiffstats
path: root/dom/base/test/file_webaudioLoop.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/file_webaudioLoop.html')
-rw-r--r--dom/base/test/file_webaudioLoop.html44
1 files changed, 44 insertions, 0 deletions
diff --git a/dom/base/test/file_webaudioLoop.html b/dom/base/test/file_webaudioLoop.html
new file mode 100644
index 000000000..c255bc541
--- /dev/null
+++ b/dom/base/test/file_webaudioLoop.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<script>
+var ac = new AudioContext();
+var runningPromise = new Promise(resolve => {
+ ac.onstatechange = event => {
+ if (ac.state == "running") {
+ resolve();
+ }
+ };
+});
+fetch("audio.ogg").then(response => {
+ return response.arrayBuffer();
+}).then(ab => {
+ return ac.decodeAudioData(ab);
+}).then(ab => {
+ var src = ac.createBufferSource();
+ src.buffer = ab;
+ src.loop = true;
+ src.loopStart = 0;
+ src.loopEnd = ab.duration;
+ src.start();
+ src.connect(ac.destination);
+});
+
+var suspendPromise;
+function suspendAC() {
+ runningPromise.then(() => {
+ suspendPromise = ac.suspend();
+ });
+}
+
+var resumePromise;
+function resumeAC() {
+ suspendPromise.then(() => {
+ resumePromise = ac.resume();
+ });
+}
+
+function closeAC() {
+ resumePromise.then(() => {
+ ac.close();
+ });
+}
+</script>