Commit Graph

112 Commits

Author SHA1 Message Date
Igor Tironi
e1574675b5 flipped playerLayer nil check to start observer 2022-06-14 16:58:47 -07: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
60d0968514
Merge pull request #2395 from zetlanddk/apply-modifiers-before-starting
Make sure modifiers are applied before playing
2022-04-20 01:15:58 -07:00
Eran Hammer
2dadf28bb5
Merge pull request #2645 from tombaranowicz/tombaranowicz-patch-1
Disable pipController init if pictureInPicture is false
2022-04-20 00:54:53 -07:00
Eran Hammer
ccd9894910
Fix iOS 15.4 race condition 2022-04-05 12:34:41 -07:00
Tomasz Baranowicz
dad33ef885
Disable pipController init if pictureInPicture is false
Disable pipController init if pictureInPicture is set to false prevents going to PIP mode on iOS when the app goes to the background.
2021-11-05 12:42:45 +01:00
Jonas Dalesjö
bf11502fdb
Merge pull request #2215 from valtech-sd/master
Resolved ignored silent switch in iOS when player is set to paused
2021-09-09 21:34:50 +02:00
Shane Mckenna
a42240d554 Fix for tvOS native audio menu language selector 2021-08-23 11:59:53 -07:00
Jonas Dalesjö
db58ba90f1
Merge pull request #2167 from redspear/1930-ios-reapply-rate-modifier
Fix: iOS rate is reset to 1.0 after play/pause #1930
2021-06-24 17:49:05 +02:00
anderslemke
dcea67eb96 Make sure modifiers are applied before playing 2021-06-03 15:11:57 +02:00
Nick Fujita
88b636f158
iOS DRM Fixes for License Fetching (#2208) 2021-01-13 19:18:01 +09:00
Cameron Perry
f79782b447 Resolved an issue where setting a video to paused would ignore the “silent switch” setting 2020-11-19 16:18:31 -08:00
redspear
522af9eaa7 Bugfix: #1930 2020-09-28 09:56:06 +10: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
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
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
Jens Andersson
6bc25f1099 Implement pending seek 2020-05-07 11:00:59 +02:00
Harrison Mendonça
2b33b9ebbb Merge remote-tracking branch 'upstream/master' 2020-05-06 12:09:41 -03:00
Jens Andersson
08c7aaa77e Compare CGFloats instead 2020-05-05 18:10:49 +02:00
Jens Andersson
cc2e9c42fa Fix video dimensions for HLS streams 2020-05-05 17:49:42 +02:00
Harrison Mendonça
b4582c681b add mixWithOthers prop 2020-04-20 17:25:59 -03: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
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
Daniel Mariño Ruiz
ed335f3b02
Fix indent and respect previous rate 2019-09-22 07:40:53 +02:00
Daniel Mariño Ruiz
cfcf6ce506
Merge branch 'master' into master 2019-09-21 08:41:55 +02:00
Jovan Stanimirovic
0cfc73252c fix formatting
fix crash iOS9
2019-08-30 16:01:19 +02:00
Jovan Stanimirovic
7615e5dcd1 fix invert boolean property 2019-08-22 10:36:33 +02:00
Jovan Stanimirovic
e3782c4ec6 added support for automaticallyWaitsToMinimizeStalling property on iOS 2019-08-22 10:10:39 +02:00
Nahuel Marisi
7a9081d5af Removing the call to observeValueForKeyPath:ofObject:change:context: on super from RCTVideo.
If the super class is not actually observing the key, the app will crash. Checking to see if
the super class responds to this selector doesn't solve this issue.

react-native-video github issue: https://github.com/react-native-community/react-native-video/issues/1515

Discussion about this particular problem: https://stackoverflow.com/questions/6574714/whats-wrong-with-this-observevalueforkeypathofobjectchangecontext-implement
2019-08-20 09:37:49 +02:00
Daniel Mariño Ruiz
eae487c57e
Merge branch 'release/4.4.3' into feature/fix-when-muted-and-controls 2019-07-08 12:15:55 +02:00
Daniel Mariño
576273d712 fix when controls & muted 2019-07-06 13:58:18 +02:00
Daniel Mariño Ruiz
9bc709f35e
Merge branch 'release/4.4.3' into master 2019-07-04 10:05:54 +02:00
Jens Andersson
3d2a58a8c5 Fix memory leak when using AVPlayerViewController, make sure to release player 2019-07-03 08:44:55 +02:00
Zaid Daghestani
4a3ea93739 bring back super KVO with selector check 2019-07-02 13:36:13 -07:00
Zaid Daghestani
6de06f1f54
Remove calls to [super observe] to fix crash 2019-07-01 14:56:41 -07:00
Jens Andersson
cb3e8c8281
Merge branch 'release/4.4.2' into posterfix 2019-06-20 09:06:13 +01:00
Daniel Mariño Ruiz
92f7459e6d
Merge pull request #1614 from jenshandersson/master
Remove video player when entering background correctly
2019-06-19 21:11:42 +02:00
Jens Andersson
420332e078 Implemented onReadyForDisplay for iOS when using controls 2019-06-19 14:18:25 +01:00
Daniel Mariño
32796e9a54 Change also RCTVideo.h 2019-06-19 09:22:10 +02:00
CHaNGeTe
112608cbaf RCTDirectEventBlock 2019-06-18 07:31:17 +02:00
Jens Andersson
a0bb083064 Remove video layer when entering background correctly, both if using controls or not 2019-06-17 09:09:04 +01:00
Hampton Maxwell
c36a9cf2ef
Merge pull request #1441 from nfb-onf/1319-fullscreen-rotation-issues
1319 - fullscreen rotation issues with iOS built-in controls
2019-03-12 21:52:10 -07:00
Kyle Bedell
5dbf7e2b54 Remove unused delegate in header file. 2019-03-12 11:21:12 -07:00
Kyle Bedell
933bbae77b Fix tvOS picture-in-picture compilation regression. 2019-03-11 19:55:36 -07: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
f69231fe81
Merge pull request #1246 from niklassaers/master
Instead of crashing, show a warning and return
2019-02-18 21:34:46 -08:00