Commit Graph

161 Commits

Author SHA1 Message Date
Olivier Bouillet
d86adc52f3
Chore: rework ad props (#4220)
* fix: move ad configuration in source
2024-10-10 23:53:39 +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
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
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
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
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
Olivier Bouillet
91d27a6009
feat: add plugins management (#3909) 2024-06-25 08:55:32 +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
Olivier Bouillet
dac0985430
fix(iOS): sometimes aspect ratio is invalid (#3821)
* 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: invert aspect ratio evaluation to find video height / width
2024-05-22 22:54:00 +02:00
Olivier Bouillet
cd42dd78c9
fix(tvos): fix tvOS build and sample (#3785)
* 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: fix tvOS supported platform

* chore: fix tvOS build

* chore: update project tvos configuration
2024-05-20 13:09:58 +02:00
Krzysztof Moch
b3f08f6c99
fix(ios): call onLoadStart earlier (#3750) 2024-05-13 21:32:51 +02:00
Krzysztof Moch
1d235a1fea
perf(ios): add early returns (#3741)
* perf(ios): add early returns

* code review

* apply code review
2024-05-08 16:07:32 +02:00
Krzysztof Moch
cbdcbf2573
chore: update repository links (#3742) 2024-05-07 17:25:09 +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
c59d00a0f0
perf: ensure we do not provide callback to native if no callback provided from app (#3735)
* perf: ensure we do not provide callback to native if no callback provided from app

* perf: remove onIdle Callback

* chore: code review
2024-05-07 11:06:12 +02:00
Nguyễn Bảo Khương
e96c17321f
fix(ios): destroy adsManager when player detach from super view (#3716) (#3722)
* fix(ios): destroy adsManager when player detach from super view (#3716)

* fix: swift format
2024-05-01 11:31:20 +02:00
Olivier Bouillet
1a8295c8bf
fix(ios): ensure orientation is correct on iOS (#3719)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample

* fix(iOS): ensure orientation is correctly reported

* chore: fix build
2024-04-26 10:02:13 +02:00
Olivier Bouillet
d56b251aef
fix(ios): ensure duration available when playing live (#3710)
* fix(ios): ensure duration is correct when starting a live playback
2024-04-25 11:29:00 +02:00
Krzysztof Moch
b5ccc48476
fix(ios): add workaround for TouchableWithoutFeedback (#3688) 2024-04-18 14:18:17 +02:00
YangJH
042e13c1dc
fix(ios): update onPlaybackStateChanged implementation (#3687) 2024-04-18 10:11:15 +02:00
Olivier Bouillet
e26afac403
fix(ios): workaround for rate change (#3657)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix(ios): add a workaround for smooth rate change management
2024-04-07 19:04:43 +02:00
Olivier Bouillet
4c7719a3f5
fix: ensure tracks are available in sample (#3660)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample
2024-04-07 19:02:39 +02:00
Krzysztof Moch
07f71c2fc4
fix(ios): apply PictureInPicture state on start (#3655) 2024-04-05 10:37:00 +02:00