129 Commits

Author SHA1 Message Date
Olivier Bouillet
b698b1837b
fix(android): video resolution orientation android (#3862)
* fix(android): ensure width/heigh respect rotation of the video + Add rotation info in onVideoTrack event
2024-05-31 18:53:24 +02:00
Olivier Bouillet
c2ce66ed26
fix(android): optimize lag on old android (#3860)
* fix: enable forceEnableMediaCodecAsynchronousQueueing for old android device
2024-05-31 08:58:29 +02:00
Olivier Bouillet
bdf3e556d8
fix(android): refactor source, fix random DRM issue and crop start on local asset (#3835)
* fix: refactor source parameter parsing

Also fix a side issue when using a local file cropping props were not applied
Also fix random DRM issue by refactoring initializePlayerSource https://github.com/TheWidlarzGroup/react-native-video/issues/3082

* chore: restore metadata checks before appling them
2024-05-30 08:53:49 +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
Seyed Mostafa Hasani
5059e7a7f1
feat(android): handle increment forward and rewind buttons (#3818)
* feat(android): handle increment forward and rewind buttons
* fix: function name for get seekIncrementMS
2024-05-28 09:32:30 +02:00
lovegaoshi
c2a14240ad
fix(android): android cache header (#3832)
* fix: android cache header
2024-05-28 09:29:21 +02:00
Paul Rinaldi
5c29b48747
fix(android): allow notification tap to foreground app (#3831) 2024-05-28 09:23:56 +02:00
Olivier Bouillet
69bde447b8
fix(android): revert previous fix not compatible with old java version (#3828) 2024-05-23 17:35:13 +02:00
Olivier Bouillet
d987525b6d
chore(android): fix various warnings (#3810)
* chore: add missing annotation
* chore: remove unused import
* chore: add final on members
* chore: remove unused
* chore: add missing annotations
* chore: remove unused
* chore: replace switch by if
* chore: simplify lamba declaration
* chore: more beautifull declaration
* chore: rename variable considered as a typo
* chore: remove deprecated & avoid multiple calls to the same function
2024-05-22 14:02:55 +02:00
Olivier Bouillet
cad5c4624c
fix(android)!: rework video tracks management (#3778)
* fix: fix crash when invalid index type is provided and minor clean up
* fix: review video track management. Fix index support and rework string vs int in tracks management
* fix: ABR track selection check
* fix: split track selector in sample and lint code
* fix: ensure we don't report null fields
* chore: improve tracks displayed
* chore: start moving to selection by index only
2024-05-22 14:01:55 +02:00
Olivier Bouillet
e16730de11
fix(android): implement live configuration management (#3792)
* 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

* feat(android): implement live buffer configuration

* chore: fix linter
2024-05-20 16:18:20 +02:00
Olivier Bouillet
d272a86f20
Fix(android): allow to select tracks with exceeded capabilities for more flexibility (#3791)
* 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

* fix: allow to select Exceeded Constraints tracks for more playback flexibilities
2024-05-20 15:36:54 +02:00
Seyed Mostafa Hasani
95e6140eea
feat(android): add possibility to hide seekBar (#3789)
* feat: hide seekBar on Android when a video is a live broadcast

* refactor: prop name & code

* chore: update the document for a new prop (controlsStyles)

* refactor: code

* remove: additional variables

* fix: indent issues

* remove: duplicate function

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

revert change1

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

revert change2

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

chore: revert indent change

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

chore: revert indent change

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

chore: revert indent change

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

chore: revert indent change

* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java

chore: revert indent change

* fix: eslint errors

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

chore: revert indent change

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-05-20 12:45:18 +02:00
Olivier Bouillet
d4c9be2ba0
fix(android): random android crash (#3777)
* 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

* fix(android): fix random crash
2024-05-17 15:16:48 +02:00
Olivier Bouillet
d716e1ab2a
chore(android): improve exoplayer logs (#3780)
* 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

* fix: improve debuging display and enable it in the sample
2024-05-17 15:10:37 +02:00
YangJH
6455380f9e
fix(android): source metadata compare function (#3775) 2024-05-17 14:44:48 +02:00
YangJH
66e0ba579b
fix(android): playback doesn't work with 0 startPositionMs (#3784) 2024-05-17 14:21:02 +02:00
Olivier Bouillet
324b461527
fix(android): remove remaining ad view when zapping (#3786)
* 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

* fix(android): ensure adsLoader is well release if unused
2024-05-16 15:57:27 +02:00
Olivier Bouillet
219496ff3a
fix(android): video tracks crash and clean (#3767)
* 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

* fix: fix crash when invalid index type is provided and minor clean up
2024-05-14 16:39:41 +02:00
Olivier Bouillet
2e623ca0fb
fix(avoid): avoid early return in setSrc (#3759)
* 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

* fix(android): avoid easly return in setSrc
2024-05-13 19:19:20 +02:00
Olivier Bouillet
e420418e8f
feat(android): make buffering strategy dynamic (#3756)
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* feat: expose bufferingStrategy to app and change default behavior
rename disableBuffering undocumented prop to bufferingStrategy and document it.
before this change, default was 'dependingOnMemory'. It can trigger some unnecessary gc() call on android.
2024-05-11 22:02:04 +02:00
Olivier Bouillet
1a48f190f0
chore(android): clean up logs (#3758)
* 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(android): cleanup logs TAG
2024-05-11 19:03:44 +02:00
Olivier Bouillet
efb338ee2a
chore(android): refactor side loaded text tracks (#3754)
* 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(android): refactor external text tracks management.

Split parsing and tracks handling

* chore: fix linter
2024-05-11 18:57:59 +02:00
Krzysztof Moch
8ad4be459b
feat: add notification controls (#3723)
* feat(ios): add `showNotificationControls` prop

* feat(android): add `showNotificationControls` prop

* add docs

* feat!: add `metadata` property to srouce

This is breaking change for iOS/tvOS as we are moving some properties, but I believe that this will more readable and more user friendly

* chore(ios): remove UI blocking function

* code review changes for android

* update example

* fix readme

* fix typos

* update docs

* fix typo

* chore: improve sample metadata notification

* update codegen types

* rename properties

* update tvOS example

* reset metadata on source change

* update docs

---------

Co-authored-by: Olivier Bouillet <freeboub@gmail.com>
2024-05-07 12:30:57 +02:00
Olivier Bouillet
8eb31e82c7
chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size (#3739) 2024-05-06 22:04:40 +02:00
Olivier Bouillet
e05da4e9fe
feat(android): implement asset folder playback (#3733)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample

* feat(android): implement playback from asset folder

* chore(android): fix linter

* chore: move sample mp4 from package assets to exemple assets
2024-05-06 21:51:17 +02:00
lovegaoshi
ecc946d1c1
feat(android): cache (#3514)
* feat: android cache

* docs: bufferSize

* Revert "docs: bufferSize"

This reverts commit 09637b134e121b9ca3ffd78f2f5bc657319ed67a.

* fix: cacheSize name

* feat: singleton android cache

* fix: local cache resolve

* fix: lint

* docs: android cache

* chore: merge conflict

* fix: lint

* chore: useCache button

* chore: fix state in the sample

* fix: cache factory

* chore: update cacheSizeMB docs

---------

Co-authored-by: Olivier Bouillet <freeboub@gmail.com>
2024-05-01 11:20:34 +02:00
Pixee OSS Assistant
eec125579f
chore(android): switch order of literals to prevent NullPointerException (#3711)
Co-authored-by: pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com>
2024-04-25 11:15:32 +02:00
YangJH
6f61d7f6e6
fix(android): prevent changing video track when video load (#3683)
- video track must change after video loaded, if change with load state, ready state can be called
2024-04-22 21:32:59 +02:00
Olivier Bouillet
c730306e3a
fix(android): seek callback with controls (#3694)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample

* fix(android): add onSeek callback when controls are enable

* chore: remove seekTime which is useless now
2024-04-22 10:35:51 +02:00
YangJH
1af12f9dfb
fix(android): fixed bug where video would not be visible after remount and change of drm source (#3668)
* refactor(android): remove redundant lifecycle (onDetachedFromWindow)

* fix: remove initPlayer within onAttachedToWindow and remove lifecycle
2024-04-16 14:42:34 +02:00
Krzysztof Moch
64e3191f73
feat(android): allow to disable selected functionalities (#3681)
* feat(android): add possibility do disable some of functionalities

* create dump classes

* remove dump files when functionalities are enabled

* add docs

* enable all functionalities in example

* throw error when trying to use disabled functionality

* update docs
2024-04-16 14:23:19 +02:00
Olivier Bouillet
2285eba8f0
Feat/add rtsp support (#3677)
* feat(android) : add rtsp support
2024-04-16 10:41:39 +02:00
Krzysztof Moch
336b9f0220
fix(android): set title for external subtitles (#3676) 2024-04-14 14:57:04 +02:00
Olivier Bouillet
dd3a400689
Chore/fix strange management of resume (#3629)
* fix(android): rename startPlayback to resumePlayback and fix implementation

I cannot understand why this implementation has been done. I guess this is to workaround some issue...
now resume only resume playback and don't start a new playback during bufffering...

* chore: simplify duplicated code
2024-03-29 20:59:58 +01:00
Olivier Bouillet
f10511d953
fix(android): improve and backBufferDurationMs. mainly let exoplayer manage the prop (#3619)
BREAKING CHANGE: move backBufferDurationMs from root props to bufferConfig
2024-03-28 21:33:17 +01:00
Gaëtan Kueny
bfb76e6d15
fix(android): keep screen on on fullscreen (#3563)
add KEEP_SCREEN_ON flag when video is fullscreen & playing to avoid phone to go off.
inspired by 2d8466128d
2024-03-22 09:17:00 +01:00
Olivier Bouillet
d5c8b514a1
fix(android): track selection parameter has change in last release. (#3594)
Move all setSelectedTrack to String instead of Dynamic

Co-authored-by: Olivier Bouillet <olivier@OrdinateOlivier.lan>
2024-03-22 07:58:09 +01:00
Olivier Bouillet
3d7444ab25
fix(android): ensure rate is never set to 0 (#3593)
* fix(android): ensure rate is never set to 0

---------

Co-authored-by: Olivier Bouillet <olivier@OrdinateOlivier.lan>
2024-03-21 15:40:25 +01:00
Olivier Bouillet
408cfb2c1c
chore: various code clean (#3591)
* chore: remove media3 dependancy from common

* chore: remove unused

* chore: fix linter change

---------

Co-authored-by: Olivier Bouillet <olivier@OrdinateOlivier.lan>
2024-03-21 14:07:53 +01:00
Olivier Bouillet
eaa72c6665
fix(android): enableDecoderFallback to decrease DECODER_ERROR issue (#3416)
Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2024-03-12 22:38:24 +01:00
coofzilla
6184c10acc
feat(android): add subtitle event (#3566)
* feat: add onCues method to get access to subtitle content
2024-03-11 13:50:19 +01:00
YangJH
366c841c0b
fix(android): check disableFocus when state is ready (#3494)
* fix: check disableFocus when state is ready

* Revert "fix: check disableFocus when state is ready"

This reverts commit b616bc2b8165f49a60d2f4b061d5d9abce63bff6.

* refactor: makes keepScreenOn ignore disableFocus when start playback
2024-03-08 19:34:09 +01:00
Gyanendro Kh
af6aea8934
fix(android): onSeek called instantly (#3530) 2024-02-13 14:58:53 +01:00
Olivier Bouillet
aec7db6390
Revert "fix: remove pausePlayback when audio focus loss event (#3496)" (#3504)
This reverts commit b1ab0f24a3efbcc3be49005060f50b34a117664e.

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2024-01-29 07:36:13 +01:00
Krzysztof Moch
135d97ce50
fix(android): re-layout controls after fullscreen dismiss (#3490)
* fix(android): re-layout controls after fullscreen dismiss
2024-01-26 21:34:07 +01:00
YangJH
b1ab0f24a3
fix: remove pausePlayback when audio focus loss event (#3496) 2024-01-23 22:22:14 +01:00
YangJH
3858a15b42
fix: remove lifecycle listener after component unmount (#3489)
- fix issue #3488
2024-01-20 13:29:29 +01:00
Krzysztof Moch
800aee09de
chore: lint project (#3395)
* chore: format swift code
* chore: format clang code
* chore: format kotlin code
* refactor: rename folder "API" to "api"
2023-12-07 08:47:40 +01:00
Axel Vencatareddy
596c02d2b3
feat: add onAdError event listener (#3381)
* feat: add onAdError event listener
* feat: remove onAdError event listener and use already existing
* feat: add ERROR event to docs
2023-12-02 13:52:01 +01:00