Commit Graph
2681 Commits
Author SHA1 Message Date
Kamil Moskała 8f7eeea5bf feat(example): web 2026-03-25 15:51:34 +01:00
Kamil Moskała 8e8b089ddb fix(web): fix container warning and store lifecycle 2026-03-25 15:41:01 +01:00
Kamil Moskała 41c97080e3 fix(web): proper store attach order and video element fallback 2026-03-25 15:30:55 +01:00
Kamil Moskała 0bdd36a0b4 feat(web): migrate from video.js v8 to v10 (@videojs/react) 2026-03-25 14:58:55 +01:00
Kamil Moskała 152100f7bf chore: remove audio/video track and quality APIs from both platforms 2026-03-25 14:29:11 +01:00
Kamil Moskała 8ee2340819 refactor(web): split events by platform and isolate DOM types 2026-03-25 13:23:02 +01:00
Kamil Moskała 1f2ee5f06f chore: split tsconfig into web & default 2026-03-25 11:23:10 +01:00
Kamil Moskała bc060c668f feat(web): add supportedFeatures and __DEV__ warnings for unsupported methods 2026-03-25 08:58:58 +01:00
Kamil Moskała e6d02089b4 refactor(web): extract WebTrackHandler and shared video.js types 2026-03-25 08:49:03 +01:00
Kamil Moskała e1c705311b fix(web): bridge onError to consumers and fix __destroy cleanup 2026-03-25 00:13:31 +01:00
Kamil Moskała 3e839810f6 fix(web): critical runtime fixes
Fix BigInt(NaN), player.src(undefined), codeMap fallback, videoWidth,
quality guard, listener leaks, vid.style, window.videojs, MediaSession SSR.
2026-03-25 00:08:10 +01:00
Kamil Moskała 580acb7225 fix(web): fix naming and typos
Rename WebEventEmiter→WebEventEmitter, ViewViewProps→VideoViewProps.
Fix field/comment typos and update all imports.
2026-03-25 00:04:36 +01:00
zoriya 9a22f3f2a5 Fix native compilation due to double/long mismatch 2026-03-21 16:38:49 +01:00
zoriya 7376f69907 Merge master into web 2026-03-21 16:38:49 +01:00
a01d203bcb chore: Upgrade to Nitro 0.35.0 (#4849)
* chore: Upgrade to Nitro 0.35.0

* Replace `bigint` with `UInt64`

* chore: Regenerate specs now for Nitro 0.35.0

* fix: Use Int64 as it can be -1

* Remove unnecessary patches

* fix: change duration type to number

* fix: avoid mutating VideoInformation fields after init

* chore: regenerate specs with new duration type

* fix: use Double for duration in VideoInformation

* docs: react-native-nitro-modules version

* chore: update react-native-nitro-modules version (rnv & drm)

---------

Co-authored-by: fnwk <filip.wnek200@gmail.com>
2026-03-18 22:44:49 +01:00
Kamil Moskała 309c31e6bb chore: release v7.0.0-beta.8 2026-03-18 20:39:36 +01:00
Kamil MoskałaandGitHub f3382f97f4 fix: video in fullscreen freeze after swiping (#4858)
* fix: video in fullscreen freezing after swiping

* fix(ios): use optional chainin
2026-03-18 18:40:09 +01:00
Kamil MoskałaandGitHub 0a403dd62d fix(ios): stabilize NowPlaying controls (#4857)
* fix(ios): stabilize NowPlaying controls

* fix(ios): dispatch NowPlaying update to main thread (#4862)

* docs: remove comment (#4863)

* rename player with `_`
2026-03-18 18:35:42 +01:00
Kamil Moskała eccf78b650 chore: release 7.0.0-beta.7 2026-03-10 20:38:19 +01:00
Kamil MoskałaandGitHub 1b0726cf0e fix(ios): notification controls flow (#4854)
* fix(ios): load artwork asynchronously to unblock notification controls

* fix(ios): remove playback observer on player removal and guard artwork callback

* fix: cleaning up player

* refactor: `if` syntax

* fix: add missing cleaner

* fix: remove `rounded` from current time

* chore: update pod versions

* refactor(ios): use targeted update functions at each call site

* refactor(ios): use async/await to load artwork metadata

* fix(ios): update static now playing info after setting external metadata

* fix: find new player before updating playback state

* fix(ios): take over notification controls when registering an already-playing player

* fix(ios): clear stale artwork and guard against item change in async artwork load

* fix: guard notification controls updates against stale player item

* fix: update playback duration periodically to handle streams with initially unknown duration
2026-03-09 17:44:12 +01:00
ddcb9e6dd9 fix(ios): fixed audio focus change on iOS (#4811)
* fix: fixed audio focus change on ios

* Fix formatting for audio session category options

---------

Co-authored-by: Kamil Moskała <91079590+moskalakamil@users.noreply.github.com>
2026-03-09 13:54:44 +01:00
Kamil MoskałaandGitHub e96d9565bd fix(ios): restore inline UI after PIP stop to prevent black screen (#4852)
* fix(ios): restore inline UI after PIP stop to prevent black screen

* fix: restore pip when view is attached
2026-03-09 12:32:44 +01:00
Kamil bb2debc566 chore: release 7.0.0-beta.6 2026-02-06 12:10:01 +01:00
Kamil MoskałaandGitHub 8da799832a fix(ios): notification controls (#4838)
* fix: update observer thread

* fix(ios): fix showNotificationControls not working when set during initialization

* fix(ios): set custom metadata on AVPlayerItem for now playing info

* refactor: warn when wront artwork url

* docs: update file header

* chore: warn when failed to load artwork image
2026-02-06 11:55:59 +01:00
Kamil MoskałaandGitHub a1cc9eb7e3 docs: change fundaments with fundamentals (#4836) 2026-02-04 20:25:35 +01:00
Kamil MoskałaandGitHub 0b273d16de docs: refactor tabs (#4827)
* docs: refactor tabs

* docs: update video-view docs

* docs: lowercase tabs

* feat(docs): add downloading section

* chore: add chapters example video

* docs: update sidebar type

* docs: update tab heading

* docs: add title to fundaments

* docs: lowercase plugin

* docs(sidebar): remove link to offline sdk

* docs: add `ads` tab

* chore: add `build` to eslint ignore

* docs: remove theme mermaid

* refactor: update deploy values

* chore: upper case tabs

* refactor: update configuration tabs name

* feat: add `ask for plugin` tab

* refactor: update analytics tab

* docs: update player class tip

* docs: make chapters paid

* docs: update utm's

* docs(downloading): update intro

* chore: bump `docusaurus-ui` package to 0.1.2

* fix: update paths

* docs: update dashes

* docs: update downloading events example imports

* docs: update readme

* docs: update case

* refactor: update intro & offer
2026-02-04 20:19:49 +01:00
a7b2e970e3 fix(ios): prevent KVO crash in HybridVideoPlayer.release() (#4828)
* fix(ios): prevent KVO crash in HybridVideoPlayer.release()

Fix a crash that occurs when rapidly creating/destroying video players
(e.g., fast swiping through a FlatList of videos). The crash message is:
"Cannot remove an observer for the key path 'currentItem.status'"

Root cause:
When release() was called, it would set playerItem = nil and then
playerObserver = nil, which triggered the observer's deinit. However,
the KVO observers were still registered on the playerItem, causing
a crash when the system tried to remove them.

Solution:
1. Explicitly invalidate all KVO observers BEFORE changing any state
2. Change invalidatePlayerItemObservers() from private to internal
   so it can be called from HybridVideoPlayer.release()
3. Skip self.player.replaceCurrentItem(with: nil) which was also
   triggering the crash by changing currentItem while observers
   were still active

This ensures clean KVO removal before any state changes that could
interfere with the observer lifecycle.

* refactor: address review feedback - clean up comments and reorganize release()

- Remove verbose KVO CRASH FIX comments
- Move observer invalidation calls to "Clear player observer" section
- Restore replaceCurrentItem(with: nil) after observer cleanup

* refactor: reorder cleaners

---------

Co-authored-by: Eran Kaufman <eran@sefirot.io>
Co-authored-by: Kamil Moskała <91079590+moskalakamil@users.noreply.github.com>
2026-02-03 12:03:18 +01:00
Kamil 07a04a7df8 chore: release 7.0.0-beta.5 2026-02-03 00:16:51 +01:00
Kamil MoskałaandGitHub 5c8d73a545 fix(ios): handle fullscreen transition cancellation events (#4833) 2026-02-03 00:09:08 +01:00
Kamil MoskałaandGitHub 480ddfd715 fix: use correct languageCode on external subtitle (#4831) 2026-01-31 11:32:21 +01:00
Kamil b64c94faef chore: release 7.0.0-beta.4 2026-01-30 23:51:44 +01:00
Kamil MoskałaandGitHub d32406d786 fix: external subtitle asset composition (#4830)
* fix: external subtitle asset composition

* fix: filter for supported subtitles before adding them
2026-01-30 22:44:10 +01:00
Kamil ff93ea675e chore: release 7.0.0-beta.3 2026-01-22 12:09:42 +01:00
Kamil MoskałaandGitHub f6616272c4 chore: resolve lint & tsc errors (#4823) 2026-01-22 10:47:46 +01:00
Kamil MoskałaandGitHub b30eeef89c chore: resolve lint & tsc errors (#4823) 2026-01-22 00:20:06 +01:00
Kamil MoskałaandGitHub 86133e38cd fix: video not loading when external subtitles are malformed (#4822) 2026-01-21 23:37:51 +01:00
Kamil MoskałaandGitHub 28e295a6ee fix: access AudioFocusChangeListener on main thread (#4821) 2026-01-20 19:44:48 +01:00
Filip WnękandGitHub 44812c29d0 docs: update README with feature descriptions and image size 2026-01-14 18:05:59 +01:00
Filip WnękandGitHub 2a4f2da296 docs: add pro player banner to README (#4818) 2026-01-14 14:23:07 +01:00
Filip WnękandGitHub 69b85ef51f feat: add Pro Player section to README (#4817) 2026-01-13 22:26:27 +01:00
Kamil MoskałaandGitHub 69f3dd9e31 docs: update landing page (#4807) 2025-12-29 20:52:14 +01:00
Kamil MoskałaandGitHub 6aaeebce8a docs: add eslint (#4805)
* docs: add eslint

* chore: remove @eslint/css

* feat(docs): add custom eslint rule for css variables

* ci: check lint on css changes in docs

* ci: update lefthook configuration
2025-12-24 00:07:13 +01:00
Kamil MoskałaandGitHub 84d7abb89f docs: restyle (#4803)
* docs: add twg theme

* docs: import theme css
2025-12-23 12:13:05 +01:00
Krzysztof Moch b2ea78bd45 docs: sync with branches changes 2025-12-22 12:32:29 +01:00
Krzysztof Moch 605feed68a chore: release 7.0.0-beta.2 2025-12-19 14:56:28 +01:00
Krzysztof MochandGitHub ff882c23d0 refactor: don't use nitro dispose (#4802) 2025-12-19 13:19:46 +01:00
Krzysztof MochandGitHub 1eb317a566 docs: update README 2025-12-18 13:23:31 +01:00
Thibault CapelliandGitHub 00a6b19736 fix(android): local asset for android in release (#4784)
* fix: hermes path for android release

* chore: update bun.lock

* fix: handle raw ressources in Android release mode

* fix: replace custom AppContextHolder logic with NitroModules.applicationContext
2025-12-18 13:19:27 +01:00
Krzysztof Moch 39f88c8b05 chore: release 7.0.0-beta.1 2025-12-11 21:41:28 +01:00
Krzysztof MochandGitHub 3c9bae7741 refactor: events logic (#4798) 2025-12-11 17:38:23 +01:00