summaryrefslogtreecommitdiff
path: root/src/lib/startAudioContext.js
diff options
context:
space:
mode:
authorjulian laplace <julescarbon@gmail.com>2023-05-09 16:38:32 +0200
committerjulian laplace <julescarbon@gmail.com>2023-05-09 16:38:32 +0200
commitd4f904da669b003c91394799bc5521ebd745122b (patch)
tree979cac792bd8402e96aa4737ec261bbd0fa98386 /src/lib/startAudioContext.js
parent65b92872357db12d8c485ebd514bfc05881250b8 (diff)
render relabi wave to canvas
Diffstat (limited to 'src/lib/startAudioContext.js')
-rw-r--r--src/lib/startAudioContext.js58
1 files changed, 34 insertions, 24 deletions
diff --git a/src/lib/startAudioContext.js b/src/lib/startAudioContext.js
index 5a339a2..54bbe71 100644
--- a/src/lib/startAudioContext.js
+++ b/src/lib/startAudioContext.js
@@ -5,6 +5,8 @@
* @copyright 2016 Yotam Mann
*/
+window.__audio_context_started = false;
+
(function (root, factory) {
if (typeof define === "function" && define.amd) {
define([], factory);
@@ -90,8 +92,9 @@
*/
StartAudioContext.isStarted = function () {
return (
- StartAudioContext.context !== null &&
- StartAudioContext.context.state === "running"
+ (StartAudioContext.context !== null &&
+ StartAudioContext.context.state === "running") ||
+ window.__audio_context_started
);
};
@@ -148,31 +151,38 @@
* event has been triggered.
*/
function onTap() {
- //start the audio context with a silent oscillator
- if (StartAudioContext.context && !StartAudioContext.isStarted()) {
- var osc = StartAudioContext.context.createOscillator();
- var silent = StartAudioContext.context.createGain();
- silent.gain.value = 0;
- osc.connect(silent);
- silent.connect(StartAudioContext.context.destination);
- var now = StartAudioContext.context.currentTime;
- osc.start(now);
- osc.stop(now + 0.5);
- }
+ try {
+ //start the audio context with a silent oscillator
+ if (StartAudioContext.context && !StartAudioContext.isStarted()) {
+ var osc = StartAudioContext.context.createOscillator();
+ var silent = StartAudioContext.context.createGain();
+ silent.gain.value = 0;
+ osc.connect(silent);
+ silent.connect(StartAudioContext.context.destination);
+ var now = StartAudioContext.context.currentTime;
+ osc.start(now);
+ osc.stop(now + 0.5);
+ }
- //dispose all the tap listeners
- if (StartAudioContext._tapListeners) {
- for (var i = 0; i < StartAudioContext._tapListeners.length; i++) {
- StartAudioContext._tapListeners[i].dispose();
+ //dispose all the tap listeners
+ if (StartAudioContext._tapListeners) {
+ for (var i = 0; i < StartAudioContext._tapListeners.length; i++) {
+ StartAudioContext._tapListeners[i].dispose();
+ }
+ StartAudioContext._tapListeners = null;
}
- StartAudioContext._tapListeners = null;
- }
- //the onstarted callbacks
- if (StartAudioContext._onStarted) {
- for (var j = 0; j < StartAudioContext._onStarted.length; j++) {
- StartAudioContext._onStarted[j]();
+
+ //the onstarted callbacks
+ if (StartAudioContext._onStarted) {
+ for (var j = 0; j < StartAudioContext._onStarted.length; j++) {
+ StartAudioContext._onStarted[j]();
+ }
+ StartAudioContext._onStarted = null;
}
- StartAudioContext._onStarted = null;
+
+ window.__audio_context_started = true;
+ } catch (error) {
+ //
}
}