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.
* rm dist at start of build
* renderer style
* preload sound files for instant playback
The first time a sound file is played, the Audio object is cached.
5s after startup, all sound files are automatically preloaded.
* 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.