diff --git a/src/lib/audio/shared-audio-context.js b/src/lib/audio/shared-audio-context.js index 919920834972fac2fc403259a75db3cf12980a97..7d65e51a0b66b12f2c0972bb35674f9324bff2c8 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); } /**