Commit graph

86 commits

Author SHA1 Message Date
infinite-persistence
5766dc34b5 Port recsys to master; enabled for SIMPLE_SITE only 2021-06-29 14:52:11 -04:00
Anthony
312c561529 update comment 2021-06-26 22:26:40 -04:00
Anthony
ab13b23cef dont display cc button via videojs settings 2021-06-26 22:26:40 -04:00
infinite-persistence
aaffd3b089
CodeSplit: Load 3rd-party css before ours.
A temporary solution until we code-split css.
2021-06-25 16:00:45 +08:00
infinite-persistence
244f5ecaa4 Fix videos not switching when floating player is up
## Issue
6278 Video doesn't switch when floating player is up

## Notes
Not sure why the double `src` call is needed, but it is.
2021-06-19 11:23:29 -04:00
zeppi
eff948f786 toms fix for player timeout bug 2021-06-11 13:40:01 -04:00
infinite-persistence
47539edcab Fix lint (removal of videoFetchDuration) 2021-06-10 10:14:52 -04:00
Anthony
272eb90392 remove native controls for ios 2021-06-04 15:41:42 -04:00
Anthony
eef218a807 use video js viewer for ios and add playsinline 2021-06-04 15:41:42 -04:00
infinite-persistence
2dac41e5e5
Mute video when autoplay is blocked by browser policy (#6087)
## Issue
When opening a video directly in Chrome Incognito, the video should autoplay (since that's the default Lbry setting), but it doesn't due to browser policy
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

## Changes
- We don't want to forcefully mute the video when `autoplay=true`; we just want to do it when the browser policy is applied.
- Fortunately, there is already an existing code-block for us to check that.

## Test cases
- [x] "Autoplay=Off" should not be affected.
- [x] After manually unmuting, the next autoplayed video should not be muted (this is "user interacted" opening, so the policy allows autoplay)
- [x] If manually muting, the next autoplayed video should retain user's last setting.

## Known issues
- I've seen `error` occasionally being undefined in the `catch` block. In those cases, the solution doesn't work. We could remove `if (player.autoplay() && !player.muted())` and simply just try muting it, but for now it's better to ensure `NotAllowedError` is due to unmuted first before applying the fix.
- This doesn't work for Firefox as there is an explicit "Allow Autoplay" button in the address bar that user needs to click themselves. Applies to all sites.
2021-05-19 11:56:54 -04:00
Max Kotlan
1279a6eaaf Fixed and cleaned up Hotkeys. Fixed overlapping lbry hotkeys with browser hotkeys 2021-04-19 13:34:10 -04:00
Sean Yesmunt
e08b71774c pre-roll ads 2021-04-12 12:55:06 -04:00
DispatchCommit
954966abbb fix linting errors 2021-03-21 20:36:50 -04:00
r0ckinn
6b8554517c also add keybinds for volume 2021-03-21 20:36:50 -04:00
r0ckinn
6b3dce0450 improve keyboard shortcuts 2021-03-21 20:36:50 -04:00
infiinte-persistence
83912627de vjs: Fix 'Video-setting persistence broken'
## Issue
5513: Video-setting persistence broken

## Notes
- Per videojs recommendation, the setting-restoration should be done after the video has been loaded, so the action was moved to `loadedmetadata`. This fixed the volume slider problem, and should have fixed the playbackRate too.
- For playbackRate, there is another special case where it gets reset to 1 (refer to comments in code).
2021-03-15 15:03:15 -04:00
infiinte-persistence
09c1cfeb8f vjs: Fix 'Video showing previous audio clip's thumbnail instead'
## Issue
5450: Video showing previous audio clip's thumbnail instead

## Notes
`createVideoPlayerDOM` depends on `isAudio`
2021-03-15 15:03:15 -04:00
DispatchCommit
1f3035b2f9 remove console.log for linter 2021-03-09 16:04:40 -05:00
DispatchCommit
d47b6eae0c Track duration for initial video fetch time
this may help identify degraded services and poor user experience.
2021-03-09 16:04:40 -05:00
infinite-persistence
af8b683308 videojs: Localize + add shortcut tooltip
## Issue
Partially closes 3041: Display/hint what keyboard shortcuts are available in videos
(minus the "all shortcuts" overlay -- saving that for another day)
2021-03-08 14:13:56 -05:00
infinite-persistence
05383701af Restore video loading circle
## Issue
5554: Video: loading circle sometimes does not appear until 2nd click

## What's happening
videojs behavior:
(a) A `src` change makes the Play button re-appear.
(b) An `onPlay` (or `play()`) makes the button go away.

Due to the `m3u8` header async fetch (i.e. return is potentially delayed), the initial `onPlay` (which cleared the button) that happened after user clicked Play gets negated by a potentially-delayed `src` change.

# Changes
- Manually hide the play button that is induced by the change in `src`. In the fetch-delay scenario mentioned above, the player continues to be in a 'playing' state anyway.
- But don't hide the button if paused externally (e.g. browser-level)
Restore video loading circle
2021-03-08 13:28:25 -05:00
DispatchCommit
d5d97fe6e7 cleanup plugin code 2021-02-18 14:11:10 -05:00
DispatchCommit
0fff2542b7 Add custom quality selector plugin
Adds custom video.js hls quality selector plugin
This allows the quality selector plugin to stay active and listen for source changes on the player to prevent the need to recreate the player when switching between MP4's and M3U8's
2021-02-18 14:11:10 -05:00
infiinte-persistence
d26d76fc70 Theater: hide button when not needed
## Issues
5349: Remove theater mode button from player in comments
5519: Theatre mode button doesn't do anything in full screen mode [Odysse/LBRY desktop app]

## Notes
5349: Wanted to hide for 'markdown' as well, but it seems useful for 'markdown' (to clear the screen from Related), so I did not include it.
2021-02-17 17:56:10 -05:00
Sean Yesmunt
8c21ec30e8 prevent caching on streaming url requests
Fixes an issue where the browser still thought a file wasn't transcoded because it was serving the cached response
2021-01-27 14:27:27 -05:00
Sean Yesmunt
99d7487bc2 fix quality selector not showing up 2021-01-27 14:27:27 -05:00
DispatchCommit
9a395a0284 remove leftover console log 2021-01-27 12:50:40 -05:00
DispatchCommit
d6e5df540e remove unused player reference 2021-01-27 12:50:40 -05:00
DispatchCommit
3d38739be1 adds vjs player reference to component state 2021-01-27 12:50:40 -05:00
infiinte-persistence
1f48dab312 Remove unnecessary 'reload' at the return statement.
We no longer need to re-render the whole thing..
2021-01-27 12:50:40 -05:00
infiinte-persistence
84bba58d64 Update broken 'Retry' button after videojs refactoring. 2021-01-27 12:50:40 -05:00
Dispatch
4cf9a455bc
add autoplay logic for embedded player (#5399)
Add autoplay logic when player is embedded.

Adds new `autoplay` prop to `VideoJs` component for specifying autoplay value.
2021-01-27 08:49:30 -05:00
DispatchCommit
52f883be4e fix linting errors 2021-01-26 11:00:41 -05:00
DispatchCommit
ee28648852 remove console.log statements 2021-01-26 11:00:41 -05:00
DispatchCommit
d8564cda5a hack-y solution to losing player context
use a global window variable to store the reference to the current video.js instance.
2021-01-26 11:00:41 -05:00
DispatchCommit
68ae2d571f only react to source prop updates 2021-01-26 11:00:41 -05:00
DispatchCommit
7c8383f2dc attempt to persist a single video.js instance
Continually recreating video.js instance on render is bad.
Instead, persist a single instance, and simply update the source and poster on the existing instance.
2021-01-26 11:00:41 -05:00
infiinte-persistence
855d13e735 Add "t" as shortcut for Theather Mode 2021-01-25 10:38:25 -05:00
DispatchCommit
bb3354581a fix overrideNative option for vjs
resolves https://github.com/lbryio/lbry-desktop/issues/5323
2021-01-20 21:49:08 -05:00
Sean Yesmunt
21cbb64001 Revert "Add Chromecast support on Google Chrome."
This reverts commit 65ce47a7d1.
2021-01-20 15:14:00 -05:00
Sean Yesmunt
c166060f0d Revert "Pass the title and channel name to Chromecast."
This reverts commit bb828385d0.
2021-01-20 15:14:00 -05:00
infiinte-persistence
bb828385d0 Pass the title and channel name to Chromecast.
I'm a bit wary of adding props to this component due to the 'dispose' call, but I think 'source' and 'claim' will update together, so it shouldn't be an issue?
2021-01-19 10:29:28 -05:00
infiinte-persistence
65ce47a7d1 Add Chromecast support on Google Chrome. 2021-01-19 10:29:28 -05:00
Sean Yesmunt
80a7cbe16f add quality selector to transcoded videos 2021-01-15 10:34:41 -05:00
Sean Yesmunt
d43c4d053e add video theater mode button 2021-01-08 08:27:41 -07:00
Sean Yesmunt
eb398c419a turn it back on but head 2021-01-06 23:03:23 -05:00
Sean Yesmunt
d92f6d3e18 comment out redirect handling for transcoded streams 2021-01-06 18:40:38 -05:00
Sean Yesmunt
2436c3eb70 add extra check for video source response 2021-01-04 15:19:54 -05:00
Sean Yesmunt
f59cdb1929 fix for hls support 2021-01-04 15:04:36 -05:00
Sean Yesmunt
a8cb4d7d57 update videojs import to include http-streaming module
so we can support hls streams
2020-12-28 13:44:38 -05:00