fixed a couple of bugs

* added a list of streams and error handling, so when one fails it automatically tries another one
* fix loading animation
* move audio element fully to js land