Commit Graph

229 Commits

Author SHA1 Message Date
Olivier Bouillet
3bd032b720
Merge pull request #3047 from Romick2005/master
Print error for configureAudio method try catch blocks.
2023-04-29 14:39:40 +02:00
Craig Martin
dc41c65d62 Fix audio output not being properly set for iOS 2023-04-14 15:12:13 -04:00
Romick2005
87859bcc79
Update ios/Video/Features/RCTPlayerOperations.swift
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2023-04-05 23:50:22 +03:00
Olivier Bouillet
afcde3e335
Merge branch 'master' into AndroidRangePlayback 2023-04-05 22:49:22 +02:00
Olivier Bouillet
89454311d5
Merge pull request #3077 from francescoben/bug/3068_ios_ads_muted
fix: iOS Ads are reproduced with sound even if muted or volume set to 0
2023-04-05 22:40:38 +02:00
Olivier Bouillet
d5f12b92f3
Merge pull request #3064 from Sunbreak/fix-current-time
fix: remove undocumented currentTime property
2023-04-05 22:26:25 +02:00
Craig Martin
daabb91475 Allow audio output via earpiece 2023-04-02 14:02:56 -04:00
Francesco Benigno
9519c7bae7 set the ad volume to 0 when the player is muted on iOS 2023-03-28 13:14:48 +02:00
Sunbreak
2ef2b8eb98 fix: remove undocumented currentTime property 2023-03-15 08:13:09 +08:00
olivier
4aca30d308 fix: disable Google IMA by default on ios. now shall be enabled in project podfile 2023-03-12 23:29:03 +01:00
Roman Melnyk
2fc7193580 Print error for configureAudio method try catch blocks. Add fallback for error: 'what' (AVAudioSessionErrorCodeUnspecified). 2023-03-03 16:47:05 +02:00
Yavor Ivanov
3266eb2d67 Merge remote-tracking branch 'official/master' 2023-02-13 15:39:22 +02:00
Olivier Bouillet
947fa90634
Merge pull request #3018 from iFeelSmart/chore/review_ios_logs
chore: review logs & add RNV prefix for easier filtering
2023-02-09 22:00:25 +01:00
Olivier Bouillet
934273b0c5
Merge pull request #3027 from iFeelSmart/chore/enable_IMA_on_demand
Chore/enable ima on demand
2023-02-09 21:41:08 +01:00
Yavor Ivanov
029542721e Merge remote-tracking branch 'official/master' 2023-02-08 09:47:30 +02:00
Yavor Ivanov
fe5fc543b9 Corrected currentTime & playableDuration when using start & end time 2023-02-07 22:50:54 +02:00
Yavor Ivanov
0f6057bea5 Seeking to start time 2023-02-06 23:31:14 +02:00
Yavor Ivanov
7da44c238f iOS playback range 2023-02-06 23:00:26 +02:00
olivier
0e0ff18b27 fix(ios): ensure audio and subtitle tracks are well reported 2023-01-28 14:54:01 +01:00
olivier
d825d0e6bc chore: review logs & add RNV prefix for easier filtering 2023-01-28 14:50:18 +01:00
olivier
2032a36969 fix(ios): ensure controls are not displayed when disabled by user 2023-01-28 14:40:45 +01:00
PierluigiCod
36af01cc7b fix issue #3009 2023-01-23 16:49:46 +01:00
Nikita Likhachev
603b851d5f fix reference self. explicitly 2022-12-22 13:17:33 +07:00
Nikita Likhachev
504ec387bf iOS app crashes on call to presentFullScreenPlayer #2808 2022-12-22 13:07:06 +07:00
wood1986
2a69c16264 fix: ios build error due to missing push 2022-12-21 13:11:09 -08:00
Olivier Bouillet
ae6bbacb72
Merge pull request #2969 from wood1986/fix-ios-build-error
fix: fix ios compile issue
2022-12-21 21:30:41 +01:00
wood1986
0d6c50756c fix: fix ios compile issue 2022-12-21 11:35:54 -08:00
wood1986
ee1217d95e fix: fix the wrong merge conflict 2022-12-17 13:43:18 -08:00
wood1986
1f27ffbc81 fix: fix the kvo compliance crash when rapidly switching source 2022-12-17 13:33:49 -08:00
Olivier Bouillet
92fe61acb1
Merge branch 'master' into master 2022-12-09 22:15:55 +01:00
happyfloat
fffe9731c7
Update RCTVideo.swift
Prevents a crash in my case: https://github.com/react-native-video/react-native-video/issues/2723#issuecomment-1336130120
2022-12-07 12:16:03 +01:00
Axel Vencatareddy
eef8f2cecc
Merge branch 'master' into master 2022-11-30 13:14:07 +01:00
Axel Vencatareddy
6e5ebfcc3b [AD EVENTS] Merge resume, pause and click event on iOS and Android 2022-11-30 12:50:48 +01:00
Jesse Sessler
a39dca28a8 Guard against setting text tracks before player is initialized 2022-11-28 15:15:50 -06:00
Axel Vencatareddy
73dde32cce [IOS ADS] Fix missing self in closure 2022-11-17 12:24:49 +01:00
Axel Vencatareddy
9386955ab0 [IOS ADS] Setup ads only if adTagUrl present 2022-11-17 12:12:50 +01:00
Axel Vencatareddy
fa817264fc [ADS] Create RCTIMAAdsManager class 2022-11-17 12:01:29 +01:00
Axel Vencatareddy
f521f8f0dc [ADS] Add play/pause capability while ad is playing 2022-11-14 13:42:39 +01:00
Axel Vencatareddy
f54288c54d [IOS] Fix ads when no controls displayed 2022-11-14 11:49:15 +01:00
Axel Vencatareddy
d6da11d8ef [IOS] Convert Ads functionality to swift 2022-11-10 11:43:59 +01:00
Axel Vencatareddy
2770ab553c [IOS] Clean swift file of every space padded lines 2022-11-09 17:26:12 +01:00
Axel Vencatareddy
d5c245e675 Merge remote-tracking branch 'olgunkaya/master' 2022-11-09 13:14:04 +01:00
wood1986
86a89eaed2 fix: fix memory leak for iOS 2022-11-04 00:53:02 -07:00
Olivier Bouillet
914eb9d3c6
Merge pull request #2879 from evoactivity/patch-3
Missed 1 import for RCTVideoSwiftLog
2022-10-03 14:33:20 +02:00
Liam Potter
1ba3b2c526
Missed 1 import for RCTVideoSwiftLog
This is an addendum to #2870
2022-10-03 13:28:30 +01:00
olivier bouillet
2efa746eed fix(ios): ensure we stop playback on invalid or empty url 2022-10-02 21:33:53 +02:00
Liam Potter
a7f0efd27f Fix iOS RCTSwiftLog naming collision with rive-react-native 2022-09-26 00:10:21 +01:00
olivier bouillet
1d4665f9e8 Revert "type _eventDispatcher as RCTEventDispatcherProtocol"
This reverts commit 537d36cf60.
2022-09-14 08:08:07 +02:00
Stipe Perković
02081857f0 fix indent 2022-09-06 12:55:00 +02:00
Stipe Perković
6e6ae9d7c9 IOS: fix ui frame drop on load 2022-09-06 12:13:54 +02:00
freeboub
aaa6141b11
Merge pull request #2802 from ckaznable/patch
Fix rctDelegate may be nil in some cases
2022-08-06 11:51:57 +02:00
john
e1987e561a fix rctDelegate is nil 2022-08-05 09:53:22 +08:00
陈曦
cee650c84c feat: 🎸 add exception catch 2022-07-27 21:34:08 +08:00
陈曦
fcea0ffcea refactor: 💡 support camera video for swift 2022-07-27 21:13:47 +08:00
Igor Tironi
2a54474a18 Added missing NSError initialization params 2022-06-24 15:51:26 -07:00
Eran Hammer
41731a8117
Merge pull request #2679 from nbennink/fix/disable-sideloaded-texttracks
fix(texttracks): unable to disable sideloaded texttracks in the AVPlayer
2022-06-23 14:30:03 -07:00
Eran Hammer
553e51c639
Port of #2329 2022-06-21 23:30:55 -07:00
Igor Tironi
c2d60a7371 Merge branch 'master' of github.com:react-native-video/react-native-video into type-event-dispatcher-with-protocol 2022-06-15 11:01:24 -07:00
Igor Tironi
e1574675b5 flipped playerLayer nil check to start observer 2022-06-14 16:58:47 -07:00
Igor Tironi
537d36cf60 type _eventDispatcher as RCTEventDispatcherProtocol 2022-06-14 15:50:22 -07:00
nbennink
1597d7f7c8 style: change temporary debug name 2022-06-13 11:42:12 +02:00
nbennink
16e346c0b1 Merge branch 'master' into fix/disable-sideloaded-texttracks 2022-06-13 11:40:43 +02: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
nbennink
c9ecc8e9e0 fix(texttracks): unable to disable sideloaded texttracks in the AVPlayer 2022-05-12 14:45:02 +02: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
sdkcy
0f94a3d956 Custom skin support added for ios. onReceiveAdEvent prop added to catch ad events on ios. 2021-07-26 16:11:37 +03: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
Olgun Kaya
6c46dcffa8 Merge branch 'implement-ima-sdk' into master
# Conflicts:
#	android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
#	examples/basic/package.json
#	examples/basic/yarn.lock
#	ios/Video/RCTVideo.h
#	ios/Video/RCTVideo.m
#	ios/Video/RCTVideoManager.m
#	react-native-video.podspec
2021-06-15 15:42:07 +03: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
Robby Widyahartono
e455ea0756 call requestAds when video playing 2019-12-10 13:40:26 +07:00
Robby Widyahartono
9f3d63a37d update basic example app 2019-12-10 12:09:38 +07:00
Robby Widyahartono
519355ea58 Implement Interactive Media Ads (IMA) SDK 2019-12-10 11:40:49 +07: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