I found it awkward to listen to the video tags 'playing' and 'paused'
events, when we're controlling the state that defines what state it's
in in the first place.
This commit removes those listeners, in favor of just setting things to
the right state immediately when play(), pause(), or playPause() is
called.
Added play(), pause() methods for clarity.
* fix error about pop
* location-history: add optional callbacks
* set handler on first tick
discovered by @dcposch
* Show error when media format is unsupported
Before this change, the player would just get stuck on the loading
screen forever without notifying the user.
* issue template
* cleanup closePlayer() and stopServer()
* Add subtitle support (via drag-n-drop)
Drag and drop a subtitles file (.srt or .vtt) onto the player (or the
app icon on OS X) to add subtitles to the currently playing video.
For #281
* add multiple subtitles structure
* add open subtitle dialog from cc player controls
* Separate hidden window, with its own renderer process, for WebTorrent
(Must be a window. You cannot run WebRTC at all in a Web Worker, and you can't
run it well in a node process like the electron main process.)
* Disabled the create-torrent-modal for now. That gives us a consistent UX
regardless of whether the user dragged files or folders onto the app or opened
the Create New Torrent menu item.
* Main process routes all messages between the main and webtorrent windows.
* The renderer index.js is smaller now (but still too big), with the WebTorrent
interface moved to webtorrent.js / it's own process.
* The UI should be faster now, and should not lag under load.
Next step: Chromecast and Airplay play/pause, scrub, and state management
When casting, the correct cast button should be lit up and the video should be replaced with a title image and text
function references in hyperx need to look like:
```
onloadedmetadata=${onLoadedMetadata}
```
and not:
```
onloadedmetadata="${onLoadedMetadata}"
```
also removed some unnecessary `torrent.ready` checks in the player.
No header on Linux and OSX, just a back button on mouseover
ESC exits fullscreen, or if already not in fullscreen, goes back
More accurate scrub position
Removed the calc(100% -38x) hack, replaced with flexbox
As of this PR (https://github.com/substack/hyperx/pull/22) to hyperx,
attributes are automatically converted to properties for the few cases
where they’re different: class, for, and http-equiv.