From 39ceac4abfdd700e6ecf8e71658e26aff652df91 Mon Sep 17 00:00:00 2001 From: Daijiro Wachi <daijiro.wachi@gmail.com> Date: Sun, 9 Feb 2020 16:54:13 +0900 Subject: [PATCH] fix: initialize audio context only with user interaction --- src/lib/audio/shared-audio-context.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/lib/audio/shared-audio-context.js b/src/lib/audio/shared-audio-context.js index 919920834..7d65e51a0 100644 --- a/src/lib/audio/shared-audio-context.js +++ b/src/lib/audio/shared-audio-context.js @@ -2,10 +2,20 @@ import StartAudioContext from 'startaudiocontext'; import bowser from 'bowser'; let AUDIO_CONTEXT; -if (!bowser.msie) { - AUDIO_CONTEXT = new (window.AudioContext || window.webkitAudioContext)(); - StartAudioContext(AUDIO_CONTEXT); +if (!bowser.msie) { + /** + * AudioContext can be initialized only when user interaction event happens + */ + const event = + typeof document.ontouchend === 'undefined' ? 'mouseup' : 'touchend'; + const initAudioContext = () => { + document.removeEventListener(event, initAudioContext); + AUDIO_CONTEXT = new (window.AudioContext || + window.webkitAudioContext)(); + StartAudioContext(AUDIO_CONTEXT); + }; + document.addEventListener(event, initAudioContext); } /** -- GitLab