Vladimir
424f4eedde
fix: avoid memory leak on iOS ( #4355 )
...
* fix: avoid memory leak on iOS
---------
Co-authored-by: Vladimir Vlasov <crivlaldo@gmail.com>
2025-01-04 13:47:22 +01:00
YangJH
69a7bc2d26
feat: implement enterPictureInPictureOnLeave prop for both platform (Android, iOS) ( #3385 )
...
* docs: enable Android PIP
* chore: change comments
* feat(android): implement Android PictureInPicture
* refactor: minor refactor code and apply lint
* fix: rewrite pip action intent code for Android14
* fix: remove redundant codes
* feat: add isInPictureInPicture flag for lifecycle handling
- activity provide helper method for same purpose, but this flag makes code simple
* feat: add pipFullscreenPlayerView for makes PIP include video only
* fix: add manifest value checker for prevent crash
* docs: add pictureInPicture prop's Android guide
* fix: sync controller visibility
* refactor: refining variable name
* fix: check multi window mode when host pause
- some OS version call onPause on multi-window mode
* fix: handling when onStop is called while in multi-window mode
* refactor: enhance PIP util codes
* fix: fix FullscreenPlayerView constructor
* refactor: add enterPictureInPictureOnLeave prop and pip methods
- remove pictureInPicture boolean prop
- add enterPictureInPictureOnLeave boolean prop
- add enterPictureInPicture method
- add exitPictureInPicture method
* fix: fix lint error
* fix: prevent audio play in background without playInBackground prop
* fix: fix onDetachedFromWindow
* docs: update docs for pip
* fix(android): sync pip controller with external controller state
- for media session
* fix(ios): fix pip active fn variable reference
* refactor(ios): refactor code
* refactor(android): refactor codes
* fix(android): fix lint error
* refactor(android): refactor android pip logics
* fix(android): fix flickering issue when stop picture in picture
* fix(android): fix import
* fix(android): fix picture in picture with fullscreen mode
* fix(ios): fix syntax error
* fix(android): fix Fragment managed code
* refactor(android): remove redundant override lifecycle
* fix(js): add PIP type definition for codegen
* fix(android): fix syntax
* chore(android): fix lint error
* fix(ios): fix enter background handler
* refactor(ios): remove redundant code
* fix(ios): fix applicationDidEnterBackground for PIP
* fix(android): fix onPictureInPictureStatusChanged
* fix(ios): fix RCTPictureInPicture
* refactor(android): Ignore exception for some device ignore pip checker
- some device ignore PIP availability check, so we need to handle exception to prevent crash
* fix(android): add hideWithoutPlayer fn into Kotlin ver
* refactor(android): remove redundant code
* fix(android): fix pip ratio to be calculated with correct ratio value
* fix(android): fix crash issue when unmounting in PIP mode
* fix(android): fix lint error
* Update android/src/main/java/com/brentvatne/react/VideoManagerModule.kt
* fix(android): fix lint error
* fix(ios): fix lint error
* fix(ios): fix lint error
* feat(expo): add android picture in picture config within expo plugin
* fix: Replace Fragment with androidx.activity
- remove code that uses Fragment, which is a tricky implementation
* fix: fix lint error
* fix(android): disable auto enter when player released
* fix(android): fix event handler to check based on Activity it's bound to
---------
Co-authored-by: jonghun <jonghun@toss.im>
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2025-01-04 12:37:33 +01:00
Giovanni P.
3da4f1ca97
fix(ios): _paused
is updated when video playback pause ( #4320 )
2024-12-10 19:50:32 +01:00
proohit
1033c9d4f3
fix(ios): disables subtitles for none
and empty
track types ( #4319 )
2024-12-04 15:35:51 +01:00
Tarık
daaac9740a
fix(ios): handle async player access in text track selection ( #4293 )
...
* fix(ios): add null check to setSelectedTextTrack for player instance
* Revert "fix(ios): add null check to setSelectedTextTrack for player instance"
This reverts commit 447c83423cdd77b0cfa9cc171b231327a2cf1586.
* fix(ios): ensure strong reference to player during async operation
* fix: linter
* fix: linter formatting
* fix: revert typo
2024-11-22 14:19:09 +01:00
Olivier Bouillet
d86adc52f3
Chore: rework ad props ( #4220 )
...
* fix: move ad configuration in source
2024-10-10 23:53:39 +02:00
Olivier Bouillet
9a3fcda3b8
feat: add setSource API function fix ads playback ( #4185 )
...
* feat: add setSource API function fix ads playback
2024-10-10 22:59:41 +02:00
Wojciech Ogrodowczyk
2c19a4770d
fix(iOS): pause video on end reached & don't remove listeners ( #4218 )
...
This fixes an issue when seeking back to the beginning results in
no `onProgress` events being fired.
2024-10-07 14:32:35 +02:00
Krzysztof Moch
b11f05f175
fix(tvos): typo ( #4204 )
...
* fix(tvos): typo
* lint
2024-09-28 16:39:09 +02:00
Olivier Bouillet
ae82c83eef
fix(ios): Add safety checks and remove some of the ! in types declaration ( #4182 )
2024-09-22 18:41:25 +02:00
Krzysztof Moch
0e4c95def9
feat(iOS): rewrite DRM Module ( #4136 )
...
* minimal api
* add suport for `getLicense`
* update logic for obtaining `assetId`
* add support for localSourceEncryptionKeyScheme
* fix typo
* fix pendingLicenses key bug
* lint code
* code clean
* code clean
* remove old files
* fix tvOS build
* fix errors loop
* move `localSourceEncryptionKeyScheme` into drm params
* add check for drm type
* use DebugLog
* lint
* update docs
* lint code
* fix bad rebase
* update docs
* fix crashes on simulators
* show error on simulator when using DRM
* fix typos
* code clean
2024-09-20 17:46:10 +02:00
Olivier Bouillet
7d43d5d3da
fix(ios): fix side loaded text track management ( #4180 )
2024-09-18 22:43:25 +02:00
Olivier Bouillet
84a27f3d9f
fix: refactor side loaded text tracks management ( #4158 )
...
* fix: refactor side loaded text tracks management
More textTracks in source.
android/ios: ensure text tracks are not selected by default
android/ios make textTrack field not nullable
clean up doc
check compatibility with the old api
Add comments on deprecated JS apis
Apply API change on basic sample
* chore: fix linter
* fix(ios): fix build with caching & remove warnings
2024-09-13 10:50:33 +02:00
Olivier Bouillet
7118ba6819
chore(ios): remove some warnings ( #4159 )
2024-09-13 10:49:43 +02:00
Krzysztof Moch
2c1fc964bf
fix(visionOS): remove unsupported apis ( #4154 )
2024-09-09 15:46:53 +02:00
Olivier Bouillet
809a730198
fix(ios): ensure onBandwidthUpdate is reported only when value change ( #4149 )
...
* fix(ios): ensure onBandwidthUpdate is reported only when value change
* chore: fix PodFile.lock
2024-09-06 15:11:12 +02:00
Gunnar Carlson
bee4123402
fix(ios): losing subtitle selection on foreground ( #3707 )
2024-09-05 10:41:27 +02:00
Olivier Bouillet
d6bae3cd07
fix(ios): fix onBandwidth update event (old ios api is deprecated and doens't work) ( #4140 )
2024-09-03 15:33:43 +02:00
Olivier Bouillet
89df9d69ff
fix(ios): ensure we don't disable tracks when not necessary (causes black screen) ( #4130 )
2024-09-02 19:08:27 +02:00
Olivier Bouillet
fbe570d62f
Fix/allow text track selection by index ( #4124 )
...
* fix(ios): ensure behavior is correct with empty text track list
* fix(ios): add index to text tracks reported
2024-09-02 17:01:39 +02:00
Olivier Bouillet
688d98d68f
fix(tvos): fix build (and update sample) ( #4134 )
...
* fix(tvos): fix build (and update sample)
2024-09-02 15:42:51 +02:00
Olivier Bouillet
3a32d67087
fix(ios): ensure behavior is correct with empty text track list ( #4123 )
...
* fix(ios): ensure behavior is correct with empty text track list
2024-09-02 15:40:38 +02:00
Guy Haguy
703ed43996
feat: add ads localize ( #4113 )
...
* add prop adLanguage; add docs
* add native code ios&android for adLanguage props
* add missing function to adsLoader and imafactory
* Update docs/pages/component/ads.md
Language correction
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
---------
Co-authored-by: Guy <guyha@reshet.tv>
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-08-29 12:30:05 +02:00
Wojciech Ogrodowczyk
9c38d9f4ef
fix(ios): Add handler for Earpods play/pause command ( #4116 )
2024-08-29 12:28:27 +02:00
Olivier Bouillet
0576eacfdd
fix(VisionOS): do not access to isExternalPlaybackActive on VisionOS ( #4109 )
2024-08-29 12:27:07 +02:00
Błażej Lewandowski
b05201a9fa
fix crash on source change, if the app was put in bg beforehand ( #4074 )
2024-08-22 10:30:23 +02:00
Faustino Kialungila
0a1085ce03
fix(ios): build fail due to an unwrapped value ( #4101 )
...
* fix: ios build crash due to AVMediaSelectionGroup not being unwrapped
* fix: use shorthand optional binding
* fix: disable swiftlint shorthand_optional_binding for guard let
* fix(ios): use guard do catch
Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>
---------
Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>
2024-08-21 10:26:32 +02:00
Paul
c6ae17e41d
fix(ios): remove resume logic in notification seek closure ( #4068 )
2024-08-12 13:58:40 +02:00
Krzysztof Moch
38aa2b057a
fix(ios): override source metadata with custom metadata ( #4050 )
...
Build iOS / Build iOS Example App (push) Waiting to run
Build iOS / Build iOS Example App With Ads (push) Waiting to run
Build iOS / Build iOS Example App With Caching (push) Waiting to run
Check CLang / CLang-Format (push) Waiting to run
Check iOS / Swift-Lint (push) Waiting to run
Check iOS / Swift-Format (push) Waiting to run
* fix(ios): override source metadata with custom metadata
* lint code
2024-08-05 11:59:49 +02:00
Błażej Lewandowski
08a57a3ba3
fix(ios): metadata update race ( #4033 )
...
* fix metadata update race
* merge nowPlayingInfo instead of overriding it
* update method name
* fix code style
2024-08-02 10:49:52 +02:00
EETVApps
2348c5e42c
fix(ios): updated getLicense call to work with new syntax, and fixed spelling error ( #4014 ) ( #4042 )
...
* fix(android): updated getLicense call to work with new syntax, and fixed spelling error (#4014 )
* fix(android): corrected error with my refactor (#4014 )
* fix(android): Removed trailing space (#4014 )
* fix(ios): Refactored following review (#4014 )
* fix(ios): Lint tidy (#4014 )
* fix(ios): Removed incorrect semi-colon (#4014 )
* fix(ios): Fixed more lint errors (#4014 )
---------
Co-authored-by: Darren Taft <darren.taft@bt.com>
2024-08-02 10:42:20 +02:00
YangJH
c2084c2ace
refactor: internal refactor for prepare new arch ( #3980 )
...
* chore(js): fix typo
* refactor(js): refactor type code for codegen
* refactor(js): refactor Video component
- parse shutterColor value within JS
- remove internal fullscreen state
* chore(js): add deprecation warning comment
* fix(js): fix return type
* fix(js): fix import path
* refactor(android): apply changed API for new arch
* refactor(ios): apply changed API for new arch
* fix(ios): fix wrong name
* refactor: refactor VideoDecoderProperties
- rename and add wrapper
* refactor(android): Code fixes for backward compatibility with Kotlin
2024-07-12 10:27:42 +02:00
Krzysztof Moch
40a72825e6
fix(ios): remove pip check for other platforms ( #3991 )
...
* fix(ios): remove pip check for other platforms
* Update ios/Video/RCTVideo.swift
2024-07-11 12:54:54 +02:00
Krzysztof Moch
111a5d2163
feat: add isSeeking
to onPlaybackStateChanged
( #3899 )
...
* feat: add `isSeeking` to `onPlaybackStateChanged``
* refactor `onSeek` event emit logic
* fix rebase
2024-07-11 10:08:36 +02:00
Olivier Bouillet
66dcf32b56
refactor: move view type and drm in source ( #3867 )
...
* perf: ensure we do not provide callback to native if no callback provided from app
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* chore: improve issue template
* fix(android): avoid video view flickering at playback startup
* chore(android): refactor DRM props into a dedicated class
* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
* chore: fix linter
* fix: ensure drm prop is correctly cleaned
* feat(android): move viewType (secure texture) & drm inside the source
The origianl behavior has been kept for interoperability, but marked as deprecated in doc
* chore: fix linter
* chore(ios): move drm prop in source like on android
* chore: fix linter
* chore: clean log
* fix: allow to disable secure View
* chore: fix viewType resolution (source value was not handled)
* chore: use contentDeepEquals instead of manual checks
* chore: fix linter
* fix: ensure player doesn't start when view is unmounted
* Fix/ensure view drop stop playback startup (#3875 )
* fix: ensure player doesn't start when view is unmounted
* chore: revert change
* chore: add warning in case of invalid Surface configuration
* chore: code clean
* fix: simplify surface management
* chore: restore previous code
* chore: fix typo
* chore: code cleanup
* feat(android): add multiDrm flag support
* docs: update docs
* chore: fix ios build
* chore: fix deprecated declaration
---------
Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>
2024-07-10 12:17:22 +02:00
Krzysztof Moch
ccffcfd709
fix(ios): don't pause playback when entering background ( #3973 )
2024-07-08 13:41:21 +02:00
YangJH
7def3ac387
fix(ios): fix fullscreen view controller ANR ( #3952 )
...
- ANR occurred setFullscreen(true) when view controller presenting
2024-07-04 12:46:42 +02:00
YangJH
76c6329110
refactor(ios): refactor NowPlayingInfoCenerManager.swift ( #3968 )
...
* refactor(ios): refactor NowPlayingInfoCenerManager
* fix(ios): fix lint error
2024-07-04 12:11:12 +02:00
Olivier Bouillet
91d27a6009
feat: add plugins management ( #3909 )
2024-06-25 08:55:32 +02:00
Paul
91751abc87
feat(ios): add live key to now playing dict to decorate when livestream playing ( #3922 )
...
Co-authored-by: Paul <paul@dnconsulting.dev>
2024-06-21 22:33:24 +02:00
Olivier Bouillet
3d6bc9409c
fix(ios): crash on ads after leaving the app ( #3911 )
2024-06-20 11:18:27 +02:00
Krzysztof Moch
2d793dbde1
fix(ios): missing notification controls when enabled from start ( #3898 )
2024-06-12 11:54:22 +02:00
Seyed Mostafa Hasani
3a4a13011a
chore: add setFullScreen to component's ref ( #3855 )
...
* chore: add setFullScreen to component's ref and remove presentFullscreenPlayer & dismissFullscreenPlayer
2024-06-10 22:41:26 +02:00
Dibyendu Das
ac0a9c3e3a
fix(ios): Implicit use of 'self' in closure - use 'self.' to make capture semantics explicit ( #3764 ) ( #3881 )
...
* Fix/ensure view drop stop playback startup (#3875 )
* fix: ensure player doesn't start when view is unmounted
* Patch commit to fix the error:
Implicit use of 'self' in closure; use 'self.' to make capture semantics explicit
---------
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-06-07 14:04:00 +02:00
Krzysztof Moch
ff1e24aaad
fix: ensure view drop stop playback startup ( #3875 )
2024-06-07 13:54:14 +02:00
Olivier Bouillet
7133c96cac
fix: ensure progress is sent before onEnd
callback ( #3872 )
...
* fix: add onProgress event before onEnd
2024-06-03 12:13:52 +02:00
Krzysztof Moch
5c6dfb26c5
fix(ios): fix notification controls enabled by default ( #3861 )
2024-05-31 08:57:17 +02:00
YangJH
1b51c15348
fix(ios): fix playback status with lifecycle ( #3819 )
...
* fix(ios): fix playback status with lifecycle
* chore(ios): fix lint error
* fix(ios): check _playInBackground value within handleExternalPlaybackActiveChange
2024-05-28 21:04:55 +02:00
Seyed Mostafa Hasani
c7f4d7b83b
feat: add getCurrentPosition to component's ref ( #3824 )
...
* feat: add getCurrentPosition to component's ref
---------
Co-authored-by: mostafahasani <hasanie.mostafa@alopeyk.com>
2024-05-28 11:00:38 +02:00
Krzysztof Moch
cd28d370d2
fix(ios): don't crash app if view wasn't found ( #3841 )
...
* fix(ios): don't crash app if view wasn't found
* lint code
2024-05-27 09:22:22 +02:00