Commit Graph

148 Commits

Author SHA1 Message Date
olivier bouillet
b64c7dbea5 feat: add support of subtitles style configuration 2022-07-05 23:58:30 +02:00
olivier bouillet
877b55c92c Merge branch 'master' of https://github.com/react-native-video/react-native-video into fix/remove_deprecated_MediaPlayer_2
# Conflicts:
#	CHANGELOG.md
2022-06-18 22:02:51 +02:00
olivier bouillet
466d7c3170 chore: cleanup documentation 2022-06-15 22:51:04 +02:00
Devon Sams
8509e3a930
Replace Image.propTypes with ImagePropTypes. 2022-06-13 11:26:40 -04:00
Eran Hammer
bf11bb95ed
Merge pull request #2689 from crunchyroll/cr-android-improvements
Crunchyroll Android Improvements
2022-06-08 22:23:07 -07:00
Armands Malejevs
8a057c553b Remove buffer progress event 2022-06-08 11:29:09 +03:00
Eran Hammer
10d8034895
Merge pull request #2625 from renchap/deprecated-prop-types
Use prop types from `deprecated-react-native-prop-types`
2022-06-05 10:44:50 -07:00
Eran Hammer
9ce8e26bd4
Update Video.js
Co-authored-by: Elliott Kember <elliott.kember@gmail.com>
2022-06-04 01:15:25 -07:00
Armands Malejev
8b317ed398
Merge branch 'master' into cr-android-improvements 2022-05-23 11:59:22 +03:00
Nick Fujita
68b9db4d11
iOS Swift Conversion (#2527)
Converts iOS implementation from Objective-c to Swift

# During the conversion process some updates to the code structure were also made
- Modularize codebase from single file to smaller focused files
- Untangled large nested IF statements
- Added more null checks, since Swift is more strict with null pointers
- Added property to allow for decoding of local video sources with self contained key for offline playback
- Updates example apps to test react-native 0.63.4 and uses auto native dependency imports for android and ios
2022-05-19 22:29:25 +09:00
Eran Hammer
ec8e7eba11
Merge branch 'master' into deprecated-prop-types 2022-05-04 12:34:28 -07:00
Eran Hammer
2cb2f682de
Merge pull request #2587 from owjsub/update-shaka-player
Bump shaka-player to 3.3.2
2022-04-22 00:15:34 -07:00
Eran Hammer
a0716335d7
Merge pull request #695 from chinloongtan/master
Fix nil string uri parameter error
2022-04-22 00:05:12 -07:00
Gabriel Rivero
03f77495fc
VEX-6350: add onPlaybackStateChanged prop (#25)
* Adds the new prop onPlaybackStateChanged
2022-04-19 12:12:47 -04:00
Renaud Chaput
4bf4ee7392
Use prop types from deprecated-react-native-prop-types
Starting with React Native 0.68, using Prop Types from `react-native` emits a warning.
2022-03-30 22:36:21 +02:00
Gabriel
2af360a7bb add useSecureView prop to prevent screen recording 2022-02-14 21:17:22 -04:00
Owen Hart
5b41407d71 Fix lint 2022-02-04 12:32:34 -08:00
namrog84
79d6ebf99e remove unsupported arch and fix uimanager for rnw release 2021-11-15 15:57:24 -08: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