In this state, the playback rate is always 1, as we haven't had a chance
to update it yet (which currently happens in the play callback).
Fixes speed setting when jumping between YouTube videos.
e.g. Coursera videos have their own speed controls. If the speed
is changed from A to B via their controls, then the video is
paused & resumed, our play callback would reset the speed to A.
We now ensure our speed setting is accurate by updating it in the
ratechange callback, which happens no matter how the speed is
updated.
- fix race between settings fetch + controller init
- ratechange is an observer
- set speed on controller init and 'play' events
Side effect: stored default is only updatable via VC controlls; if you
use other methods we will change settings for that playback but the
setting won't be persisted -- this is intentional / required behavior.
Closes#27, #23
Video playback range in Chrome: [0.0625, 16]
Audio playback range in Chrome: [0.05, 4]
Setting min to 0.05 and max to 16, since outside of this range you're
not getting audio or video.
closes#26