The issue was the phone was in silent mode. Weirdly, the sound generated by webaudio api is treated as "ring tones and alerts". So when you're in silent mode, unlike audio and video, there will be no sound playing from web audio api.