Deeplink url and direct visit behave differently

I try to integrate ionic3 + p5js + lazy-load + deeplink.

I want to run an example of microphone level detect. It did work when I visit the deeplink url.

But when I visit the localhost:8100 directly. It just doesn’t work.

I am really confused why the behavior is different?

Here is the screenshot recording how I demo this and the github repo.

Any advise for how to debug this will be appreciated. I have try many ways but no luck to find out what’s the cause.

I spend whole day narrowing down this problem. I think I can re-defined the question now.

Q: Why is the microphone not work in my ionic web but work after refreshing the page?

Ans:

I finally found this issue is related to limitation of WebAudio api.
There’s nothing wrong with ionic, angular, lazyload, deeplink or p5js.