JSBin demo: https://output.jsbin.com/noyepif Summary: // Analyse the audio const streamSrc1 = audioCtx.createMediaStreamSource(stream); const analyser = audioCtx.createAnalyser(); streamSrc1.connect(analyser); // Play the audio const streamSrc2 = audioCtx.createMediaStreamSource(stream); streamSrc2.connect(audioCtx.destination); One solution is to use the same MediaStreamSource instead of creating multiple, but it doesn't seem like this should be necessary. Chrome and Firefox handle this without issue. This can occur for example when these operations are done in separate parts of the application.
<rdar://problem/32981074>