Commit Graph

131 Commits

Author SHA1 Message Date
Gabriel Rivero
03f77495fc
VEX-6350: add onPlaybackStateChanged prop (#25)
* Adds the new prop onPlaybackStateChanged
2022-04-19 12:12:47 -04:00
Gabriel
2af360a7bb add useSecureView prop to prevent screen recording 2022-02-14 21:17:22 -04:00
Gabriel Rivero
292b53916a
VEX-6030: Reduce buffer size based on heap (#13)
This PR changes the behavior on old devices that have poor memory management.

Jira: VEX-6030
https://jira.tenkasu.net/browse/VEX-6030

The solution implied customizing the method shouldContinueLoading from RNVLoadControl to use only the available heap, performing tests on an old Nexus 5 it was determined the ideal bytes allocation to half the reported heap, that provided some buffering during ads but smooth playback during the video with no crashes (23:39 of 23:39 at the moment of writing this, video kept playing as expected after 3 ad breaks)

The fix is only targeting Marshmallow as the reduction of buffer is substantial and other versions that work properly should not get affected.

Depending on the test result of VEX-5758, this same fix can be applied to Nougat

Reviews
Major reviewer (domain expert): @armadilio3
Minor reviewer: @nickfujita
2021-11-09 14:37:52 -04:00
Armands Malejev
f712eecb4f
VEX-6011: Align AVOD resolutions with available resolutions on Content (#14)
Add support for content tracks and improve track selection to work even during ads playback.
2021-11-09 14:22:32 +02:00
Gabriel Rivero
7dbc5eb078 add config parameter maxHeapAllocationPercent 2021-11-04 13:54:43 -04:00
Nick Fujita
e27baeb065
VEX-5938: Update resource loader to handle encrypted local files (#12)
Adds offline decryption key and uses it to decrypt content during offline playback

Jira: VEX-5938
https://jira.tenkasu.net/browse/VEX-5938

- Update to accept scheme for key required to play offline playback
- Uses provided scheme to intercept call from player and return the key
- Fixes player item observer removal pattern

### Reviews
- Major reviewer (domain expert): @armadilio3
2021-10-28 10:34:05 +09:00
Armands Malejev
93604b2c25
VEX-3245: Buffer Progress UI While Paused (#7)
Add support for onBufferProgress prop on Android to get buffer data even when the player is paused.
2021-07-07 18:59:55 +03:00
Adrian Mui
61e6535b2f
Feature/toggle buffering (#3)
This PR adds the property disableBuffering: boolean for android. The PR was initally created as a personal fork and referenced in crunchyroll/vilos#1227

also updated RNVLoadControl constructor and method to reflect new ExoPlayer.LoadControl api

related ticket: https://jira.tenkasu.net/browse/VEX-3776
2021-03-18 12:58:04 +02:00
Nick Fujita
88b636f158
iOS DRM Fixes for License Fetching (#2208) 2021-01-13 19:18:01 +09:00
Daniel Mariño
81b42e7ca7
Add iOS and Android basic DRM support (#1445)
This PR adds support for DRM streams on iOS (Fairplay) and Android (Playready, Widevine, Clearkey)

I am neither Android nor iOS developer, so feel free to provide feedback to improve this PR.

**Test stream for ANDROID:**
```
testStream = {
        uri: 'http://profficialsite.origin.mediaservices.windows.net/c51358ea-9a5e-4322-8951-897d640fdfd7/tearsofsteel_4k.ism/manifest(format=mpd-time-csf)',
        type: 'mpd',
        drm: {
            type: DRMType.PLAYREADY,
            licenseServer: 'http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,sl:150)'
        }
    };
```

or 
```
{
    uri: 'https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd',
    drm: {
        type: 'widevine', //or DRMType.WIDEVINE
        licenseServer: 'https://drm-widevine-licensing.axtest.net/AcquireLicense',
        headers: {
            'X-AxDRM-Message': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU'
        },
    }
}
```

**Test stream for iOS:**
Sorry but I can not provide free streams to test. If anyone can provide test streams, or found some we can use, please let me know to also test them.

It has been tested with a private provider and they work, at least with the `getLicense` override method. (An example implementation is provided in the README)
2020-08-12 18:56:21 -07:00
Jens Andersson
f395bd1d3d
Removed JS fullscreening for Android (#2013) 2020-06-11 16:44:13 +02:00
Param Aggarwal
0b914ef2b9
Expose currentPlaybackTime when live stream video (#1944)
* added trackId to exoplayer onLoad callback

* added trackInfo to bandwidth callback

* syntax fix

* syntax fix

* version update

* sending complete logcat for media playback exception ExoPlaybackException

* version bump

* package publish changes

* Live playback fix

* Version bump

* import fix

* version bump

* configurable preferredForwardBufferDuration

* configurable preferredForwardBufferDuration

* version update

* Exposing time

* exo player window current tsp

* return type

* Current window timestamp in epoch

* iOS changes

* version update

* Updated package.json

* updated version

* CurrentTime bug fix

* Updated package.json

* Updated currentPlaybackTime

* Updated currentPlayback logic

* Updated package.json

* Bug fix

* Added semicolon

* updated package.json

* Updated ReactVideoView

* updated verison

* Revert package.json changes

* Update ReactVideoView.java

* Use standard log

* Document preferredForwardBufferDuration (iOS)

* Document currentPlaybackTime

* Document trackId

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update README.md

* Update CHANGELOG.md

Co-authored-by: anubansal <anu.bansal@curefit.com>
Co-authored-by: Sivakumar J <sivakumar@curefit.com>
Co-authored-by: parikshit <parikshit@curefit.com>
Co-authored-by: anubansal92 <40559524+anubansal92@users.noreply.github.com>
Co-authored-by: Rishu Agrawal <rishu.agrawal@v.curefit.com>
Co-authored-by: rishu-curefit <54575330+rishu-curefit@users.noreply.github.com>
2020-05-15 09:25:19 +02:00
Benoit Dion
4f07aab8b1
Bump javascript dependencies (#1914)
Also update linting rules to match other community repositories.
2020-02-22 13:56:31 -05:00
IbrahimSulai
9200dce1ae
Add full screen support to Android Exoplayer (#1730) 2020-01-28 17:21:21 -05:00
Learnyst
0df667692b Audio Poster issue fix (#1779) 2019-11-26 14:40:03 -05:00
Jovan Stanimirovic
e3782c4ec6 added support for automaticallyWaitsToMinimizeStalling property on iOS 2019-08-22 10:10:39 +02:00
Jens Andersson
6ea65833fe Make sure to hide poster for Windows, even though onReadyForDisplay is not implemented 2019-06-20 09:24:26 +01:00
Jens Andersson
b193baa802 Hide poster at the right time ie in onReadyForDisplay 2019-06-19 14:19:06 +01:00
Jens Andersson
cc7db91490 Improved handling of poster, fading it out on load 2019-06-19 12:00:57 +01:00
Jens Andersson
6d3936de0b Fixes bug where poster and video was displayed simultaneously 2019-06-19 10:39:35 +01:00
Laurin Quast
dc75d236c5
fix: access on undefined variable 2019-02-19 07:38:09 +01:00
Hampton Maxwell
d5fe47f238
Merge pull request #1325 from Khan/pip
Implement picture in picture for iOS
2019-02-18 22:13:02 -08:00
Hampton Maxwell
02851bb21f Display a warning when source is empty instead of throwing an error 2019-02-18 21:36:17 -08:00
Hampton Maxwell
98eb7a3137
Merge pull request #1478 from laurent22/master
Throw an error instead of crashing app when video source is empty
2019-02-18 21:27:40 -08:00
Nick
b448b30de6 fix: remove runtime warning by replacing UIManager.RCTVideo with UIManager.getViewManagerConfig('RCTVideo') (and ensuring backwards compat) (#1487)
* replaced UIManager.RCTVideo >  UIManager.getViewManagerConfig('RCTVideo')

* added requested changes

* updated changelog.md

* docs: adjust wording
2019-02-18 12:17:20 +01:00
Laurent Cozic
891add630f
Throw an error instead of crashing app when video source is empty
If an undefined source is accidentally loaded in react-native-video a fatal error SIGABRT will happen and crash the application. This is very difficult to debug since there's apparently no relation between this crash and react-native-video. So this change checks if the URI is empty and, if it is, it throws an error, allowing the user to find out early about the issue.

https://cloud.githubusercontent.com/assets/5795227/20283860/08223ba6-aabb-11e6-9fdc-d12d32b3aa9a.png
2019-02-11 15:24:28 +00:00
Hampton Maxwell
4424774ca3
Merge pull request #1448 from sridhard/master
Feature Implementation: Recovery from transient internet failures
2019-02-10 20:07:29 -08:00
Hampton Maxwell
77411f2d0f
Rename failureRetryCount to minLoadRetryCount 2019-02-10 19:21:02 -08:00
sridhar
172954de5a Feature implementation: Failure Retry Count
Feature implementation: Failure Retry Count
2019-01-24 18:49:37 +05:30
Laurin Quast
125d5dc9c5
fix: omit packager assets from caching (#1438) 2019-01-24 13:15:58 +01:00
Abdulrahman Alzenki
62dc913cb3 Address some of the feedback from the pull reqeust 2019-01-07 10:41:30 -08:00
Abdulrahman Alzenki
617b046789 Implement picture in picture for iOS
Test Plan:
 - Run on ipad
 - test out onIsPictureInPictureSupported, onIsPictureInPictureActive, restoreUserInterfaceForPictureInPictureStop, startPictureInPicture, stopPictureInPicture
2019-01-07 10:26:20 -08:00
Hampton Maxwell
45a851e79a
Merge branch 'master' into master 2018-12-31 21:36:49 -08:00
Nicolas Gonzalez
c2d9fb4301 merge 2018-12-13 21:38:32 -06:00
Nicolas Gonzalez
67a963328a updated basic example, added filterEnabled flag, check for HLS playlist before applying filter 2018-12-13 21:30:38 -06:00
Hampton Maxwell
a43f9c7ce1
Merge branch 'master' into maximumBitRate-adaptive-streaming 2018-12-12 22:30:52 -08:00
vadim
96c42844fe ExoPlayer - Add possibility to hide shutterView 2018-11-28 14:56:58 +02:00
Ash Mishra
5ab8165c3d renamed maximumBitRate to maxBitRate. Added applyModifiers support 2018-11-26 14:50:31 -08:00
Ash Mishra
11db343987 Support for HLS maximum bit rate adaptive streaming 2018-11-26 10:33:09 -08:00
Nicolas Gonzalez
0152db8f5a Fixed Conflict in CHANGELOG.md 2018-11-18 14:12:01 -06:00
Hampton Maxwell
cbf96c2bb0
Merge pull request #1283 from laurent22/patch-1
Make seek() throw an exception when using NaN value
2018-11-13 23:11:11 -08:00
Nicolas Gonzalez
22d65addd3 Added FilterType.js with all filters that do not require extra parameters 2018-11-06 08:38:28 -06:00
sridhar
5dce3e2161 Code cleanup
Code cleanup
2018-11-01 21:41:57 +05:30
sridhar
aa526206d2 Merge branch 'master' of git://github.com/react-native-community/react-native-video into react-native-community-master
Merge branch 'master' of git://github.com/react-native-community/react-native-video into react-native-community-master
2018-10-27 09:19:28 +05:30
Nicolas Gonzalez
16e45fc9f1 added ability to export video 2018-10-26 08:21:41 -05:00
Ash Mishra
67406b5e7b restored autorotate to fullscreen options 2018-10-25 14:56:59 -07:00
Nicolas Gonzalez
18e8895712 added video filter 2018-10-25 08:56:20 -05:00
Laurent Cozic
adf63e5fa0
Make seek() throw an exception when using NaN value 2018-10-12 16:59:36 +01:00
Ash Mishra
bbf37ed5cb Removed autoRotate from codebase; added TV_OS target check for
orientation; added tvOS target to examples/basic/ios project
2018-10-11 16:42:11 -07:00
Hampton Maxwell
0646dca071 Split fullscreen options into separate props 2018-10-07 20:24:50 -07:00