I tried the navigator.wakeLock.request('screen') api,
but it is not a stable solution.(especially on mobile devices)
With many tests, the most stable solution is to enable video playing in the background.(without user notice, won't be annoying)
Here is the library to this job - https://github.com/richtr/NoSleep.js
And here is my demo : https://ajlovechina.github.io/ledbanner/