Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
4034046
fix(tvos): build (#4511)
moskalakamil Apr 14, 2025
b17c319
fix(macCatalyst): allowsVideoFrameAnalysis not available in catalyst …
ryfow Apr 14, 2025
2bdc0da
chore: update bot messages (#4517)
moskalakamil Apr 16, 2025
b1b3db3
feat(ios): add `overridePlayerAsset` to `AVPlayerPlugin` (#4522)
KrzysztofMoch Apr 18, 2025
735e35a
chore: release v6.13.0
KrzysztofMoch Apr 18, 2025
dc4195e
chore: add issue number to link (#4524)
moskalakamil Apr 20, 2025
3688309
docs: update links (#4525)
moskalakamil Apr 20, 2025
1c95041
chore(example): bump react-native & expo version (#4500)
KrzysztofMoch Apr 23, 2025
987be4b
fix(ios): swfit modular headers (#4527)
KrzysztofMoch Apr 24, 2025
49173ed
Changing switch sintaxe to preserve compatibility with java 11 or min…
BryanChemp May 7, 2025
ecfe12a
fix(ios): default cropStart fallback (#4540)
jzhu1224 May 10, 2025
fc1e3f4
feat(web): allow `style` prop overrides (#4528)
jonathanj May 10, 2025
089e938
fix(ios): set `_isBuffering = true` only if newValue is also true (#4…
blwinters May 10, 2025
701f777
chore: cleanup `package.json` (#4544)
KrzysztofMoch May 10, 2025
6c5bb77
chore: release v6.14.0
KrzysztofMoch May 10, 2025
e165cde
docs: update readme (#4554)
KrzysztofMoch May 22, 2025
9449eb3
feat(android): allow plugins to override drm session manager (#4558)
moskalakamil May 28, 2025
55449d9
chore: release v6.14.1
KrzysztofMoch May 28, 2025
9cf7802
feat(plugin): overrideMediaSourceFactory (#4566)
moskalakamil Jun 5, 2025
9f03cc5
fix(web): add missing component type
KrzysztofMoch Jun 11, 2025
45fd250
chore(ios): make DRMParams properties public (#4568)
moskalakamil Jun 11, 2025
88c20d1
feat(ios): forward real fullscreen events from AVPlayer instead of gu…
sharnik Jun 11, 2025
3576a13
feat: allow audio mixing if one of the video views require it (#4559)
lukasjengo Jun 11, 2025
79d25bf
chore: fix repository url in `package.json`
KrzysztofMoch Jun 11, 2025
60c3a08
chore: release v6.15.0
KrzysztofMoch Jun 12, 2025
b51b579
fix(ios): retain cycle and memory leak involving the RCTVideo instanc…
Varuzh1 Jun 18, 2025
b56b647
fix(android): speed control is not applied (#4572)
manini-1 Jun 18, 2025
94967fc
fix(android): create custom event class for dispatcher (#4575)
r0b0t3d Jun 23, 2025
18527fc
chore(infra): update validation script (#4586)
KrzysztofMoch Jun 30, 2025
1a4e3b0
chore: update README
KrzysztofMoch Jul 1, 2025
978683b
feat(android): replace custom VideoView with media3 `PlayerView` (#4581)
Pieczasz Jul 2, 2025
2d7e039
fix(ios): allow audio mixing when none of the players are playing (#4…
lukasjengo Jul 2, 2025
86ea0e3
chore: release v6.16.0
KrzysztofMoch Jul 2, 2025
481aa7c
fix(android)/aspect-ratio (#4594)
Pieczasz Jul 8, 2025
e77a12e
chore: release v6.16.1
KrzysztofMoch Jul 8, 2025
bf81038
fix(ios): add audiovisualBackgroundPlaybackPolicy (#4570)
Dawqss Jul 13, 2025
31915e4
docs: Add `llms.txt` and `llms-full.txt` (#4603)
KrzysztofMoch Jul 13, 2025
b69ede1
chore: remove old docs deployment (#4626)
KrzysztofMoch Jul 25, 2025
60baecd
feat(examples): add offline-video-starter as submodule (#4644)
moskalakamil Aug 11, 2025
b11d59b
docs: Update copy around Offline Video SDK (#4646)
jakubboguski Aug 12, 2025
5b59b06
fix(android): catch errors from `activity.packageManager`
arnav-cashify Aug 26, 2025
d2c92a1
fix(ios): disable audio session management when no views (#4666)
qusaieilouti99 Aug 26, 2025
4b996fc
fix(player): trigger relayout after exiting pip (#4665)
BasixKOR Aug 26, 2025
724f639
feat(android): report full native stack trace on error (#4651)
BasixKOR Sep 1, 2025
7d233f4
feat(android): enable flexible page sizes in native build configurati…
seyedmostafahasani Sep 13, 2025
5074ca5
fix: android control option is not work when init video (#4698)
wn-na Sep 19, 2025
73604d5
Merge remote-tracking branch 'original/master' into TV-14930_offline_…
JJaks Sep 24, 2025
6b7af6a
TV-14618: Hide LIVE label on Android ExoPlayer
tonisdolm Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/setup-node/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 18.x
node-version: 20.x

- name: Cache dependencies
id: yarn-cache
Expand Down
52 changes: 39 additions & 13 deletions .github/scripts/validate.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,28 +25,40 @@ const BOT_LABELS = [
'Missing Repro',
'Waiting for Review',
'Newer Version Available',
'6.x.x',
'7.0',
...Object.values(PLATFORM_LABELS),
];

const SKIP_LABEL = 'No Validation';

const ISSUE_BOOST_INFO = (issueNumber) => `
Need faster resolution? Consider [Issue Boost](https://www.thewidlarzgroup.com/issue-boost/?utm_source=rnv&utm_medium=bug-report&utm_campaign=bot-message&utm_id=${issueNumber}) – it allows us to dedicate time specifically to your issue and fix it faster 🚀`;

const MESSAGE = {
FEATURE_REQUEST: `Thanks for the feature request! Check out our roadmap [here](https://github.com/TheWidlarzGroup/react-native-video/discussions/3351). If your request is already there – great! If not, give us some time, and we'll get back to you with information on when TheWidlarzGroup can address it as part of our free open-source support. Alternatively, [contact us](https://www.thewidlarzgroup.com/?utm_source=rnv&utm_medium=feature-request&utm_campaign=bot&utm_id=bot-message#Contact) to discuss ways to speed up the process.`,
BUG_REPORT: `Thank you for your bug report. We will review it and get back to you if we need more information.`,
FEATURE_REQUEST: (issueNumber) => `Thanks for the feature request! 🚀
\nYou can check out our [public roadmap](https://github.com/orgs/TheWidlarzGroup/projects/6) to see what we're currently working on. All requests are automatically added there, so you can track progress anytime.
\nWe review and implement new features when time allows, but this can take a while. If you'd like to speed things up and make this a priority, consider [Issue Boost](https://www.thewidlarzgroup.com/issue-boost/?utm_source=rnv&utm_medium=feature-request&utm_campaign=bot-message&utm_id=${issueNumber}), our commercial option that lets us dedicate time specifically to your request.
\nThanks for your input and patience! 🙌`,
BUG_REPORT: (issueNumber) => `Hey! 👋
Thanks for reporting this issue. We try to fix bugs as quickly as possible, but since our time is limited, we prioritize sponsored issues first, then focus on critical problems affecting many users, and finally, we handle other reports when we can. Some issues might take a while to be resolved.
\nIf you want to speed up this process, check out [Issue Boost](https://www.thewidlarzgroup.com/issue-boost/?utm_source=rnv&utm_medium=bug-report&utm_campaign=bot-message-valid&utm_id=${issueNumber}) – it allows us to dedicate time specifically to your issue and fix it faster.
\nThanks for your patience and support! 🚀`,
MISSING_INFO: (missingFields) => {
return `Thank you for your issue report. Please note that the following information is missing or incomplete:\n\n${missingFields
return `Hey! 👋
Thanks for the bug report. To help us resolve your issue effectively, we still need some key information:\n\n${missingFields
.map((field) => `- ${field.replace('missing-', '')}`)
.join(
'\n',
)}\n\nPlease update your issue with this information to help us address it more effectively.
\n > Note: issues without complete information have a lower priority`;
.join('\n')}

Please edit your issue and fill in the missing details.
> Issues with incomplete info are treated with lower priority, so this helps speed things up.`;
},
OUTDATED_VERSION: (issueVersion, latestVersion) => {
return (
`There is a newer version of the library available. ` +
`You are using version ${issueVersion}, while the latest stable version is ${latestVersion}. ` +
`Please update to the latest version and check if the issue still exists.` +
`\n > Note: If the issue still exists, please update the issue report with the latest information.`
`Heads up! ⚠️ You're using version **${issueVersion}**, but the latest stable version is **${latestVersion}**. ` +
`Please update to the newest version and check if the issue still occurs.\n\n` +
`> Keeping your dependencies up-to-date often resolves many common problems.` +
`\n\nStill having the issue after upgrading? Update the report with the new version details so we can investigate.`
);
},
};
Expand Down Expand Up @@ -114,6 +126,17 @@ const validateBugReport = async (body, labels) => {

if (!isVersionValid) {
labels.add('missing-version');
} else {
// Add version-specific labels
const versionMatch = words.find((word) => versionPattern.test(word));
if (versionMatch) {
const majorVersion = versionMatch.split('.')[0];
if (majorVersion === '6') {
labels.add('6.x.x');
} else if (majorVersion === '7') {
labels.add('7.0');
}
}
}

const latestVersion = await checkLatestVersion();
Expand Down Expand Up @@ -178,7 +201,8 @@ const handleIssue = async ({github, context}) => {
const handleFeatureRequest = async ({github, context, body, labels}) => {
validateFeatureRequest(body, labels);

const comment = MESSAGE.FEATURE_REQUEST;
const comment = MESSAGE.FEATURE_REQUEST(context.payload.issue.number);
await hidePreviousComments({github, context});
await createComment({github, context, body: comment});
};

Expand Down Expand Up @@ -212,6 +236,8 @@ const handleMissingInformation = async ({github, context, labels}) => {
)}`;
}

comment += `\n\n${ISSUE_BOOST_INFO(context.payload.issue.number)}`;

await hidePreviousComments({github, context});
await createComment({github, context, body: comment});
}
Expand All @@ -220,7 +246,7 @@ const handleMissingInformation = async ({github, context, labels}) => {
};

const handleValidReport = async ({github, context, labels}) => {
let comment = MESSAGE.BUG_REPORT;
let comment = MESSAGE.BUG_REPORT(context.payload.issue.number);

const outdatedVersionLabel = Array.from(labels).find((label) =>
label.startsWith('outdated-version'),
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/build-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -190,11 +190,14 @@ jobs:
restore-keys: |
${{ runner.os }}-pods-

- name: Install gem dependencies
run: bundle install

- name: Generate Native Project
run: export RNV_SAMPLE_VIDEO_CACHING=true && pod install
run: export RNV_SAMPLE_VIDEO_CACHING=true && bundle exec pod install

- name: Install Pods
run: export RNV_SAMPLE_VIDEO_CACHING=true && pod install
run: export RNV_SAMPLE_VIDEO_CACHING=true && bundle exec pod install

- name: Install xcpretty
run: gem install xcpretty
Expand Down
46 changes: 0 additions & 46 deletions .github/workflows/deploy-docs.yml

This file was deleted.

35 changes: 0 additions & 35 deletions .github/workflows/test-build-docs.yml

This file was deleted.

4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "examples/react-native-offline-video-download-starter"]
path = examples/react-native-offline-video-download-starter
url = https://github.com/TheWidlarzGroup/react-native-offline-video-starter.git
branch = main
65 changes: 65 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,70 @@


## [6.16.1](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.16.0...v6.16.1) (2025-07-08)

# [6.16.0](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.15.0...v6.16.0) (2025-07-02)


### Bug Fixes

* **android:** create custom event class for dispatcher ([#4575](https://github.com/TheWidlarzGroup/react-native-video/issues/4575)) ([94967fc](https://github.com/TheWidlarzGroup/react-native-video/commit/94967fc4a61e00c521242d29fd28bed13bbba7c4))
* **android:** speed control is not applied ([#4572](https://github.com/TheWidlarzGroup/react-native-video/issues/4572)) ([b56b647](https://github.com/TheWidlarzGroup/react-native-video/commit/b56b647d85aa24df2ba2ad436eb5ada67735417f))
* **ios:** allow audio mixing when none of the players are playing ([#4579](https://github.com/TheWidlarzGroup/react-native-video/issues/4579)) ([2d7e039](https://github.com/TheWidlarzGroup/react-native-video/commit/2d7e03942d5e2525e5c71dc914926ba07f67d54a))
* **ios:** retain cycle and memory leak involving the RCTVideo instance when using Google IMA ads in react-native-video. ([#4574](https://github.com/TheWidlarzGroup/react-native-video/issues/4574)) ([b51b579](https://github.com/TheWidlarzGroup/react-native-video/commit/b51b579ff00067231fb1d0754e1a86692f44bc50))


### Features

* **android:** replace custom VideoView with media3 `PlayerView` ([#4581](https://github.com/TheWidlarzGroup/react-native-video/issues/4581)) ([978683b](https://github.com/TheWidlarzGroup/react-native-video/commit/978683b64582e6363d7b5a1817e22fec342d1c47))

# [6.15.0](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.14.1...v6.15.0) (2025-06-12)


### Bug Fixes

* **web:** add missing component type ([9f03cc5](https://github.com/TheWidlarzGroup/react-native-video/commit/9f03cc5a0983e05515d3d194204a7c9eb71b383d))


### Features

* allow audio mixing if one of the video views require it ([#4559](https://github.com/TheWidlarzGroup/react-native-video/issues/4559)) ([3576a13](https://github.com/TheWidlarzGroup/react-native-video/commit/3576a134e678e6273d9195d7a17c9828c30426e2))
* **ios:** forward real fullscreen events from AVPlayer instead of guessing ([#4509](https://github.com/TheWidlarzGroup/react-native-video/issues/4509)) ([88c20d1](https://github.com/TheWidlarzGroup/react-native-video/commit/88c20d1c065b2778a66ddde4a3b92bd58bec043b))
* **plugin:** overrideMediaSourceFactory ([#4566](https://github.com/TheWidlarzGroup/react-native-video/issues/4566)) ([9cf7802](https://github.com/TheWidlarzGroup/react-native-video/commit/9cf780276af7f0a890025a13e1685e49c6589f0e))

## [6.14.1](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.14.0...v6.14.1) (2025-05-28)


### Features

* **android:** allow plugins to override drm session manager ([#4558](https://github.com/TheWidlarzGroup/react-native-video/issues/4558)) ([9449eb3](https://github.com/TheWidlarzGroup/react-native-video/commit/9449eb34f3ebcf7ac08bde1ee55e5cc26a142217))

# [6.14.0](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.13.0...v6.14.0) (2025-05-10)


### Bug Fixes

* **ios:** default cropStart fallback ([#4540](https://github.com/TheWidlarzGroup/react-native-video/issues/4540)) ([ecfe12a](https://github.com/TheWidlarzGroup/react-native-video/commit/ecfe12aa816a3126e023d0c14896681d92fe8926))
* **ios:** set `_isBuffering = true` only if newValue is also true ([#4532](https://github.com/TheWidlarzGroup/react-native-video/issues/4532)) ([089e938](https://github.com/TheWidlarzGroup/react-native-video/commit/089e938aebc222378f4d16006f585f20a8b0eed1))
* **ios:** swfit modular headers ([#4527](https://github.com/TheWidlarzGroup/react-native-video/issues/4527)) ([987be4b](https://github.com/TheWidlarzGroup/react-native-video/commit/987be4b293dc21a40b0b183433707bc9a733b715))


### Features

* **web:** allow `style` prop overrides ([#4528](https://github.com/TheWidlarzGroup/react-native-video/issues/4528)) ([fc1e3f4](https://github.com/TheWidlarzGroup/react-native-video/commit/fc1e3f4fd17faf1503b6b3d7cc604dbe1bc659c1))

# [6.13.0](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.12.0...v6.13.0) (2025-04-18)


### Bug Fixes

* **macCatalyst:** allowsVideoFrameAnalysis not available in catalyst until 18.0 ([#4515](https://github.com/TheWidlarzGroup/react-native-video/issues/4515)) ([b17c319](https://github.com/TheWidlarzGroup/react-native-video/commit/b17c319c32ad8080ad911ec4be7fa02bc4a6d6ee))
* **tvos:** build ([#4511](https://github.com/TheWidlarzGroup/react-native-video/issues/4511)) ([4034046](https://github.com/TheWidlarzGroup/react-native-video/commit/40340467d7df2ad606f25606041630c489c385f6))


### Features

* **ios:** add `overridePlayerAsset` to `AVPlayerPlugin` ([#4522](https://github.com/TheWidlarzGroup/react-native-video/issues/4522)) ([b1b3db3](https://github.com/TheWidlarzGroup/react-native-video/commit/b1b3db301097e82c8d449c08f7d334a2eaeac0ea))

# [6.12.0](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.11.0...v6.12.0) (2025-04-06)


Expand Down
Loading
Loading