Commit Graph

1303 Commits

Author SHA1 Message Date
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
Tuan Luong
4d35511fb9 add delay when hideSystemUI 2020-07-13 14:50:09 +07:00
Tuan Luong
0aa9a5901e do not hide fullscreen in stopPlayback 2020-07-13 14:41:38 +07:00
Tuan Luong
5fe76574bb add fullscreenOrientation 2020-07-10 10:45:41 +07:00
Tuan Luong
0b7ea71d77 update fullscreen activity 2020-07-05 11:00:25 +07:00
Tuan Luong
32880544e5 update manifest and import 2020-07-04 22:08:57 +07:00
Tuan Luong
94bceb472b add fullscreen activity 2020-07-04 17:41:15 +07:00
Jeferson Daniel
dbf1a4e034
Fix exoplayer aspect ratio update on source changes (#2053)
* Fix exoplayer aspect ratio update on source changes

* Update CHANGELOG.md
2020-06-30 19:00:16 +02:00
Anders Lemke
8962720f56
Support preventsDisplaySleepDuringVideoPlayback (#2019)
* Add flag on iOS

* Add flag in Android

* Add documentation

* Add changelog entry

* Also set setKeepScreenOn

* Fix prop not being set

* add preventsDisplaySleepDuringVideoPlayback to exoplayer

* Update android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java

* Update android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java

Co-authored-by: Jens Andersson <jens@fritan.com>

Co-authored-by: Anton Tanderup <antontandrup@gmail.com>
Co-authored-by: Jens Andersson <jens@fritan.com>
2020-06-16 14:31:23 +02:00
Jens Andersson
9c31948dbf
Always set headers for iOS (#2014) 2020-06-11 16:53:14 +02:00
Jens Andersson
f395bd1d3d
Removed JS fullscreening for Android (#2013) 2020-06-11 16:44:13 +02:00
limaAniceto
7c8c613a65
Upgrade exoplayer to 2.11.4 (#2034) 2020-06-11 09:17:33 -04:00
Jens Andersson
2dd5025190
Revert "[ios] Adaptive fullscreen in landscape by device orientation (#1862)" (#2043)
This reverts commit c9096d16f7.
2020-06-09 12:35:18 +02:00
Tuan Luong
c9096d16f7
[ios] Adaptive fullscreen in landscape by device orientation (#1862)
* update UIInterfaceOrientation in fullscreen

* update code
2020-05-15 14:48:15 +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
Evan Bacon
e3009c60e1
Recommend npx pod-install for setup instructions
# Summary

We've been recommending devs use `npx pod-install` since it will attempt to install CocoaPods CLI if it's not available on the computer (cite [React Navigation setup guide](https://reactnavigation.org/docs/getting-started/#installing-dependencies-into-a-bare-react-native-project)). This has proved very useful for Expo users who are now migrating to the bare workflow and want to use community packages in their projects.

## Checklist

- [x] I have tested this on a device and a simulator
- [x] I added the documentation in `README.md`
2020-05-14 12:16:36 -07:00
Jens Andersson
d6a7117250
Merge pull request #1994 from jenshandersson/pendingseek
Implement pending seek fully
2020-05-07 11:05:16 +02:00
Jens Andersson
6bc25f1099 Implement pending seek 2020-05-07 11:00:59 +02:00
Jens Andersson
838b99aacb
Update CHANGELOG, alpha-6 hasn't been released yet 2020-05-07 10:54:31 +02:00
Jens Andersson
c4385090ab
Merge pull request #1978 from euharrison/master
Audio mix with other apps for iOS
2020-05-07 09:52:34 +02:00
Harrison Mendonça
b8234f8dc5 Update CHANGELOG.md 2020-05-06 12:15:47 -03:00
Harrison Mendonça
2b33b9ebbb Merge remote-tracking branch 'upstream/master' 2020-05-06 12:09:41 -03:00
Jens Andersson
c579d3cddd
Merge pull request #1992 from jenshandersson/feat/hlssize
Fix video dimensions for HLS streams
2020-05-05 18:16:28 +02:00
Jens Andersson
08c7aaa77e Compare CGFloats instead 2020-05-05 18:10:49 +02:00
Jens Andersson
4bc2a723a4 Changelog 2020-05-05 17:56:44 +02:00
Jens Andersson
cc2e9c42fa Fix video dimensions for HLS streams 2020-05-05 17:49:42 +02:00
Harrison Mendonça
052f49e472 Update index.ios.js 2020-04-20 20:12:34 -03:00
Harrison Mendonça
4157a609ac Update README.md 2020-04-20 18:47:59 -03:00
Harrison Mendonça
b4582c681b add mixWithOthers prop 2020-04-20 17:25:59 -03:00
Hampton Maxwell
1ecb09acc4
Update onLoad event to include videoTracks info 2020-03-02 14:31:06 -08:00
Marlon Andrade
91384d8489
Don't set reactViewController view frame to whole screen (#1931)
this fixes the case on any time you have a react view that displays the video, but it's being rendered with controls but not as a full screen (ie. easily reproducible when you have a tabbar for instance - the reactViewController.view frame shouldnt be the whole screen bounds).
2020-02-26 20:43:33 -05:00
Benoit Dion
68dc15242d v5.1.0-alpha5 2020-02-25 19:10:26 -05:00
Benoit Dion
89b6d113a1 Update changelog 2020-02-25 19:09:01 -05:00
Brandon Faulkner
6d1a7bed58
Fix the ref sample code to remove the syntax error 2020-02-25 09:22:41 -05:00
Di Da
a4fec8eb99
Add support for react-native Windows Cpp/WinRT (#1893)
This also deprecates the old react-native windows implementation
2020-02-25 09:21:06 -05: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
Benoit Dion
f0867d7eef v5.1.0-alpha4 2020-02-20 09:25:37 -05:00
IbrahimSulai
fd8ac76e4d
Fix play/pause regression after added fullscreen support. (#1916) 2020-02-20 09:23:23 -05:00
Piotr Błażejewicz (Peter Blazejewicz)
5fa4cddbf8
docs(video): fix bufferConfig property name (#1855) 2020-02-17 14:12:54 -05:00
Benoit Dion
4d0be29cbb
Update changelog (#1913) 2020-02-17 12:43:27 -05:00
Michael Tintiuc
82c191d97f
Improve Android Audio Focus (#1897)
Implement audio focus as per android docs:
https://developer.android.com/guide/topics/media-apps/audio-focus
https://medium.com/androiddevelopers/audio-focus-3-cdc09da9c122

AUDIOFOCUS_LOSS should abandon focus and not try resuming audio, this is done with AUDIOFOCUS_LOSS_TRANSIENT

This fixes at least:
- Audio not being paused after focus being taken by some voip applications
- Content resuming and pausing instantly sporadically (some race condition perhaps) when activity was resumed from background.
2020-02-17 11:53:56 -05:00
Mohammed Salman
2738892631
Fix readme grammar (#1888) 2020-02-03 13:17:05 -05:00
Benoit Dion
029b893d58 Bump version to 5.1.0-alpha 2020-01-28 18:43:32 -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
Ash Mishra
2c5006ac50
Merge pull request #1827 from nfb-onf/fix-playerviewcontroller-keypath-leak
Fix playerviewcontroller keypath leak of observers
2019-11-19 13:47:15 -08:00
Ash Mishra
fa20965c35 add try catch block around removal of observer keypaths on playerViewController 2019-11-19 12:47:15 -08:00
Ash Mishra
a5bfba9451 Fixes a situation when exiting fullscreen, where observed keypath values have not been released 2019-11-19 12:32:11 -08:00
Tsukasa Setoguchi
257be246e0 fix README about reportBandwidth (#1816) 2019-11-08 14:21:15 -05:00
Benoit Dion
b97663e092
Clear progress messages on STATE_IDLE and STATE_BUFFERING (#1768)
The progress message handler will duplicate recursions of the `onProgressMessage` handler on change of player state from any state to STATE_READY with `playWhenReady` is true (when video is not paused). This clears the messages on STATE_IDLE and STATE_BUFFERING to break the recursion.
2019-09-30 13:27:08 -04:00