Commit Graph
2436 Commits
Author SHA1 Message Date
a849cc19e8 fix: add extra checks to determine if a file is local (#4503)
* fix: beter isLocalAsset checks

* fix: add "asset://" to possible assets paths

* Update src/Video.tsx

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2025-04-06 16:18:34 +02:00
Kamil MoskałaandGitHub 41ddc5c27a feat(android): initial bitrate (#4480)
* feat(android): implement initialBitrate

* refactor: reorder type

* docs: add initialBitrate section

* fix: lint

* refactor: move `initialBitrate` into `source.bufferConfig`
2025-04-06 16:16:58 +02:00
Wojciech OgrodowczykandGitHub d2e5d9c64e feat(ios): set playback speed controls to initial playback rate (#4495)
Otherwise, the Video can be initiated with playback rate 0.5 and
play correctly (slower), but in native playback speed controls 1.0
will be marked as current playback speed.
2025-04-02 17:37:56 +02:00
Kamil MoskałaandGitHub 697afd52f6 feat(android): add asset management functions to plugin (#4494)
* feat: manage asset plugins

* fix: continue when plugin is not exoplayer plugin

* refactor: change functions plugin type

* docs: introduce new plugins
2025-03-28 13:41:13 +01:00
Kamil MoskałaandGitHub f188a7fd48 refactor(ios): unpause after exiting fullscreen (#4472)
* refactor(ios): unpause after exiting fullscreen

* chore: lint code
2025-03-26 12:20:32 +01:00
Wojciech OgrodowczykandGitHub 229a5764ea fix(ios): don't try to modify react view after unmount (#4474) 2025-03-22 15:17:41 +01:00
Kamil MoskałaandGitHub 4458627051 docs: update favico & add json-ld (#4477) 2025-03-19 10:57:41 +01:00
Krzysztof Moch ede502bf74 chore: release v6.11.0 2025-03-16 14:15:57 +01:00
Emmanuel FerdmanandGitHub 044e08a78d docs: update examples (#4468)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-03-13 20:19:49 +01:00
LyqqtandGitHub d902c1bf43 feat(windows): add topSeek parms mentioned in docs (#4456) 2025-03-13 12:06:36 +01:00
Krzysztof MochandGitHub 9f02614f5d refactor(ios): add audio session manager (#4466) 2025-03-12 18:22:50 +01:00
LyqqtandGitHub fa20223c44 fix(windows): event name not matches with SPEC (#4455) 2025-03-12 14:14:23 +01:00
Krzysztof MochandGitHub 6e6f91517c feat: enhance react-native-video plugins [Plugins API Breaking] (#4366)
* feat: allow plugins for providing custom DRM manager

This will allow plugins to provide DRM manger to create custom implementations, eg. using SKD from DRM providers

* chore(example): fix drm example on android

* chore: lint code

* fix: remove platform player logic & dependency from `RNVPlugin`

* chore: change warning to debug msg

* chore: lint code

* chore(example/bare): update Podfile.lock

* refactor: reorganize ReactNativeVideoManager plugin registration methods

* refactor: add helpers & clean code

* docs: update documentation

* lint code

* add comment

* docs: update plugins section
2025-03-12 14:13:46 +01:00
Marcin DziewulskiandGitHub b5103743e8 fix(android): call startForeground() immediately to prevent ForegroundServiceDidNotStartInTimeException (#4453)
* fix: call startForeground() immediately in onStartCommand() to prevent ForegroundServiceDidNotStartInTimeException

* fix: use string resources for notification text instead of hardcoded strings

* fix: add missing import

* fix: resolve CI issues

* fix: use getString() method to convert string resource IDs to actual strings
2025-03-12 13:42:02 +01:00
Olivier BouilletandGitHub f9d3878ecc chore(ios): remove duplicated code (#4439) 2025-03-12 13:37:03 +01:00
Kamil MoskałaandGitHub b11c1f315d docs: remove ga (#4462) 2025-03-11 17:42:22 +01:00
bc533e53b0 fix(ios): invalid metadata handling (#4422)
- When the metadata has the tag "iTunSMPB" or "iTunNORM" then the metadata is not converted correctly and comes [nil, nil, ...] which leads to crash

Co-authored-by: Alexander <aleksandar.todorov@serviceos.com>
2025-03-10 22:03:05 +01:00
9055b14cf4 docs: update structure (#4454)
* [Preview] docs: update  (#9)

Co-authored-by: Bart Widlarz <bart@thewidlarzgroup.com>

* docs: update links

* docs: fix naming

* docs: update footer

* docs: update content

* docs: refine grammar

* fix(docs): update typo

* docs: update url

* refactor: sdk name

* docs: add issue boost link

* docs: add new roadmap to readme

* lint code

---------

Co-authored-by: Bart Widlarz <bart@thewidlarzgroup.com>
Co-authored-by: Kamil <moskalakamil07@gmail.com>
2025-03-06 12:38:25 +01:00
YangJHandGitHub 82f5f3d21c fix(android): fix bugs related Android PIP listeners (#4441)
* fix(android): fixed bug where listeners were not removed properly

* fix(android): fixes a bug that causes PIP to work when player is null

* refactor(android): call pipUnsubscriber without handler

* chore(android): apply lint
2025-03-06 12:24:59 +01:00
Kamil MoskałaandGitHub 13a5da8955 chore: update utm links (#4447)
* chore: update utm links

* Update package.json
2025-03-04 15:32:40 +01:00
YangJHandGitHub 235c281219 fix(android): prevent ratio calculations before loading video (#4442) 2025-03-04 15:11:13 +01:00
Philipp MikheyevandGitHub 057c287f12 fix(tvOS): handle allowsPictureInPicturePlayback for tvOS (#4448) 2025-03-04 15:08:24 +01:00
Olivier Bouillet b8459ca71d chore: release v6.10.2 2025-02-22 15:05:17 +01:00
Szymon RybczakandGitHub 3edf511f9b docs: remove additional braces in config file (#4418) 2025-02-19 19:22:35 +01:00
6697cbf5d0 fix(android): fix gradle exception text related to AndroidX version (#4420)
* fix(android): fix gradle exception text related to AndroidX version check
* Update android/build.gradle

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2025-02-19 19:19:41 +01:00
KonstantinandGitHub 04eec42f1e fix(tvOS): fix tvos compile error for rotation handler (#4417) 2025-02-16 11:55:46 +01:00
Olivier Bouillet 451bafebd7 chore: release v6.10.1 2025-02-15 17:26:27 +01:00
Efstathios NtonasandGitHub a8ca97f05f fix(ios): fix constraints when controls are enabled and video is inside a ScrollView (#4383) 2025-02-15 17:22:06 +01:00
MihaiandGitHub c8b800a508 fix(ios): the video has no audio by default (#4409)
This reverts the change in https://github.com/TheWidlarzGroup/react-native-video/pull/4319, I don't think that change is correct.

According to [docs](https://docs.thewidlarzgroup.com/react-native-video/component/props#selectedtexttrack) the default value for `selectedTextTrack.type` is "system" which means the video should respect user's preference in Settings > Accesibility > Subtitles & Captioning > Closed Captions + SDH. And this is exactly what happens by default without the changes in that PR. I think the author of that PR had this setting on, that's why it was showing the subtitles without setting something for `selectedTextTrack`, which IMO is the expected result. In order to explicitly turn off subtitles you have to set `selectedTextTrack={{ type: 'disabled' }}`. I tested it with this video and the settings option on and it works (disables the subtitles) -> https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8

Another reason why I think it should be reverted is because it also affects `selectedAudioTrack`. By default it should also have 'system' type according to [docs](https://docs.thewidlarzgroup.com/react-native-video/component/props#selectedaudiotrack), which means "Play the audio track that matches the system language. If none match, play the first track.", but the change in that PR turns the audio off by default unless you explicitly turn it on with `selectedAudioTrack={{ type: 'system' }}`.

Fixes #4400
2025-02-15 17:09:04 +01:00
Olivier BouilletandGitHub faac5ad456 fix(sample): remove duplicate code in sample (#4391)
* fix: remove duplicated code in sample
2025-02-15 17:05:59 +01:00
Krzysztof MochandGitHub 2905b61a0d fix(infra): kotlin linter github action (#4408) 2025-02-09 14:14:40 +01:00
Olivier BouilletandGitHub 74b1d5b540 fix(android): remove transparent black overlay on android default controls (#4392) 2025-02-09 14:09:28 +01:00
ad52668d05 fix(android): check for valid width and height on video format data (#4394)
Co-authored-by: mehdi <m.taghdisi@digikala.com>
2025-01-27 18:43:30 +01:00
Olivier BouilletandGitHub 638f454a21 fix(android): check androidX version at early build process before really launching build (#4388) 2025-01-25 17:10:47 +01:00
Olivier Bouillet 43955037bb chore: release v6.10.0 2025-01-22 22:59:46 +01:00
Olivier BouilletandGitHub 3d3eba97e8 fix(ios): fix paused video by default (#4379)
* fix: update style to allow show control click
* fix: push missing revert
2025-01-22 22:56:50 +01:00
darth leviandGitHub d90bf47df5 fix(windows): conversion of string to Stretch enum (#4381) 2025-01-22 22:32:25 +01:00
Olivier BouilletandGitHub d9f92b800e chore: add pre commit hook to lint and tsc the code (#4378) 2025-01-22 22:31:30 +01:00
Hugo EXTRATandGitHub 8b952e709a fix(android): support RN 0.77 (#4386) 2025-01-22 22:27:28 +01:00
8dc10fd4b7 feat(web): implement web pip method and event (#4370)
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2025-01-18 15:19:55 +01:00
Olivier BouilletandGitHub 449dfb62b5 chore: fix linter (#4377) 2025-01-18 15:05:58 +01:00
YangJHandGitHub 6c3af99979 fix(tvOS): fix tvos compile error (#4369)
* fix(tvOS): fix tvos compile error
2025-01-18 11:49:12 +01:00
Kamil MoskałaandGitHub 6cc1bff167 docs: fix analytics (#4368) 2025-01-13 15:01:15 +01:00
Krzysztof Moch 89ee02bdab chore: release v6.9.1 2025-01-10 12:09:07 +01:00
JoyandGitHub 3924b5e295 fix: NPE in setEnterPictureInPictureOnLeave for unsupported Android versions (#4362) 2025-01-10 12:07:25 +01:00
Krzysztof MochandGitHub eff8ea24af infra: fix bot comments (#4367) 2025-01-10 12:01:31 +01:00
Olivier BouilletandGitHub c47d165668 chore(android): fix type in generic folder (#4323) 2025-01-04 13:48:59 +01:00
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
Krzysztof Moch d31c72fc04 chore: release v6.9.0 2025-01-04 12:51:27 +01:00
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