Commit Graph

89 Commits

Author SHA1 Message Date
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
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
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
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
Faustino Kialungila
0a1085ce03
fix(ios): build fail due to an unwrapped value (#4101)
* fix: ios build crash due to AVMediaSelectionGroup not being unwrapped

* fix: use shorthand optional binding

* fix: disable swiftlint shorthand_optional_binding for guard let

* fix(ios): use guard do catch

Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>

---------

Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>
2024-08-21 10:26:32 +02:00
Krzysztof Moch
ccffcfd709
fix(ios): don't pause playback when entering background (#3973) 2024-07-08 13:41:21 +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
51e22abfe3
fix(ios): fix text track selection by index (#3728)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample

* fix(ios): text tracks selection by index. regression due to codegen rework

* chore: make selection by index testable (need a small manual patch)

* chore(ios): fix linter warning
2024-05-04 15:20:59 +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
Krzysztof Moch
efa1c52491
fix(ios): fix sideloading external subtitles (#3690)
* fix(ios): fix subtitles side loading

* update example

* Update examples/basic/src/VideoPlayer.tsx

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>

* Update examples/basic/src/VideoPlayer.tsx

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-04-19 22:38:52 +02:00
YangJH
042e13c1dc
fix(ios): update onPlaybackStateChanged implementation (#3687) 2024-04-18 10:11:15 +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
Gaëtan Kueny
051e884c8f
fix(ios): call PictureInPicture callbacks with native controls (#3603)
* fix(ios): call PictureInPictureStatusChanged callback with native controls

We add RCTPlayerObserver as playerViewController delegate to be notified with PiP lifecycle
should partially fix #3602

* fix(ios): call onRestoreUserInterfaceForPictureInPictureStop callback with native controls

should partially fix #3602
2024-04-04 15:08:48 +02:00
Krzysztof Moch
10b100de44
feat!(ios): remove native dependency promises (#3631) 2024-04-04 13:23:44 +02:00
Gaëtan Kueny
bb9e7eb5a5
fix(ios): fix PiP callback (#3601) 2024-03-26 14:10:31 +01:00
YangJH
098358076d
fix(iOS): throw when content id defined with empty string (#3612) 2024-03-26 13:55:11 +01:00
Olivier Bouillet
429fddf3b0
Fix(ios): fix real time issue when fast zapping (#3582)
* fix(ios): fix real time issue when doing fast zapping

* fix(ios): fix delay implementation (timing was not applied correctly)

* chore: fix random crash in sample

* chore: fix linter
2024-03-14 11:46:45 +01:00
coofzilla
f4cce2ecdb
feat: implement opacity to control visibility of subtitles (#3583)
* feat: implement opacity to control visibility of subtitles

implemented per discussion on https://github.com/react-native-video/react-native-video/issues/3579

updated docs and linked onTextTrackDataChanged to the subtitle style to clarify intent on how to control visibility.

* chore: update type so that we use a union of 0 1 vs any number

* chore: run ktlint to get rid of white spaces

* feat: add ability to have range of numbers for opacity; while, 0 will still not render the subtitles.

added util function for safeGetFloat

updated types

* feat: add ability to suppress subtitles with opacity 0

add data structure for subtitle styles for extensibility

* chore: run yarn check-ios

* chore: update documentation to clarify differences between android and ios

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

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-03-14 11:29:50 +01:00
Olivier Bouillet
7c4d19fa72
fix(ios): split licenseUrl and loadedLicenseUrl (#3578)
* fix(ios): split licenseUrl and loadedLicenseUrl
* fix(ios): fix drm license url used to provide the answer
2024-03-12 16:47:49 +01:00
jerrylc
16f3cdbd9a
fix(ios): current release volume change observer (#3565)
Co-authored-by: jerrylc.liu <jerrylc.liu@dji.com>
2024-03-06 23:55:44 +01:00
Gaëtan Kueny
b73baad2c2
fix(ios): add text tracks only if we successfully insertTimeRage (#3557)
insertTimeRage can fail & if we add failed textTrack to our validTextTracks array, video can crash later on selectTextTrack
we also add en empty textTrack only we we have validTextTrack

related to https://github.com/react-native-video/react-native-video/issues/3480
2024-03-04 10:43:33 +01:00
coofzilla
253ffb5956
feat(ios): Add ios support for accessing WebVTT Subtitle Content (#3541)
* feature: add support to get subtitle content data

* refactor: return a string of the subtitles

Push the parsing/formatting to the consumer side.

* chore: add types for new subtitle feature

* chore: run swiftlint and swiftformat

* chore: add documentation for new onSubtitleTracks callback

* chore: added test uri; basic implementation of feature; hotfix onTextTracks

added optional chaining for `return x?.selected` because tracks that don't have a track selected either by default or manually will return undefined and this can cause an error.

* feat: rename onSubtitleTracks to onTextTrackDataChanged

Renamed the onSubtitleTracks event to onTextTrackDataChanged across the codebase to clearly indicate the callback's purpose: being called when the text track's data changes. This change is reflected in the events documentation, example usage in VideoPlayer.tsx, and the relevant iOS implementation files for consistency and clarity, in line with PR feedback.

* chore: omit target property

target could be confusing for users so we have removed it. using the delete operator instead of using {target,...eventData} as that would give an eslint error about unused vars.
2024-02-29 14:41:04 +01:00
Olivier Bouillet
6a49cba273
feat: implement onAudioTracks and onTextTracks on ios (#3503)
* feat: implement onAudioTracks and onTextTracks on ios

* chore: lint code

* fix: rework previous fix to fix linter and be more aligned with architecture

---------

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2024-02-01 08:56:00 +01:00
YangJH
e63c7cbd30
refactor(ios): remove type assertion within setupPipController (#3493)
* refactor(ios): remove type assertion within setupPipController

* lint: apply swift lint
2024-01-24 07:54:58 +01:00
Krzysztof Moch
cf3ebb7f15
feat: add visionOS support (#3425)
* feat: add visionOS to target platforms

* disable unsupported API

* add temporary `promises` patches

* fix(visionOS): update promises patches

* apply code review suggestions

* format code
2024-01-15 08:04:29 +01:00
Bryan
8f1bdb7c36
Externally loaded text tracks not loading properly (#3461)
* fix text tracks

* keep map

* use where

* update change log

* fix build error
2024-01-15 07:31:22 +01:00
Krzysztof Moch
5aaa53d8b8
feat(ios): migrate from deprecated methods (#3444)
* feat(ios): migrate from deprecated methods

* fix types
2024-01-06 20:06:53 +01:00
Krzysztof Moch
2ed3949307
chore(linter/swift): add shorthand_optional_binding rule (#3456)
* chore(linter/swift): add `shorthand_optional_binding` rule

* lint code
2024-01-04 20:16:23 +01:00
Krzysztof Moch
481cc71eda
feat(ios): update timed metadata handler (#3449)
* feat(ios): update timedmetadata handler

* chore: move metadata output delegate to main queue

* code clean

* apply code review nit
2024-01-04 14:14:51 +01:00
Krzysztof Moch
f35727f30e
feat(ios): update the way to get keyWindow (#3448)
* feat(ios): update the way to get `keyWindow`

* lint
2023-12-28 12:58:25 +01:00
Konstantin
0723481fee
fix(ios): revert ios url encoding as this breaks encoded urls (#3440) 2023-12-24 14:32:24 +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
Axel Vencatareddy
d05231d76b
feat(ad): add data to onReceiveAdEvent (#3378)
* feat(ad): add adData to onReceiveAdEvent
* fix: remove adData from response if empty
* fix: add getAdData to stub file
* chore: fix build without IMA
* fix: rename `adData` to `data`

---------

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-11-27 21:43:30 +01:00
JuozasP
de4159f0c2
fix(ios): check for ios url query encoding (#3384)
Co-authored-by: Juozas Petkelis <juozas.petkelis@kilo.health>
2023-11-26 21:20:29 +01:00
YangJH
2648502b36
feat: implement startPosition (#3355)
* feat(android): implement startPosition

* feat(ios): implement startPosition

* feat: implement startPosition type

* docs: fix typo

* docs: update startPosition

* refactor: put startPosition inside source prop
- put startPosition inside source prop
- rename existing prop (startTime, endTime)

* docs: update startPosition property description

* fix: fix invalid assignments

* refactor: remove redundant optional chaining

* feat: allow "0" to work too
2023-11-24 12:52:46 +01:00
Axel Vencatareddy
364944b329
BREAK: fix(android): harmonize IMAAdEventType between iOS and Android (#3373) 2023-11-23 08:45:47 +01:00
YangJH
11f62013e3
fix(ios): fix pip(when player doesn't fill screen) (#3363) 2023-11-20 08:43:35 +01:00
Krzysztof Moch
782e7e0df1
fix(ios): fix external text tracks crashes with m3u8 files (#3330)
* fix(ios): fix crash when using textTracks with m3u8

* docs: add warning to `textTracks` prop

* chore: apply code review

* chore: remove indents
2023-11-17 08:19:39 +01:00
Krzysztof Moch
9054db35d7
feat(ios): add onBandwidthUpdate event (#3331)
* feat(ios): add onBandwidthUpdate event
2023-11-08 22:06:29 +01:00
Krzysztof Moch
cdbc856387
feat: add onVolumeChange event (#3322)
* feat: implement `onVolumeChange` event
2023-11-04 18:11:54 +01:00
Krzysztof Moch
286418e4a5
fix(ios): remove false calls at onPlaybackRateChange (#3306) 2023-10-24 22:10:29 +02:00
Krzysztof Moch
9373493d6a
feat(ios): implement onPlaybackStateChanged callback (#3307)
* chore: fix typo

* feat(ios): implement onPlaybackStateChanged

* docs: update onPlaybackStateChanged platforms
2023-10-23 18:23:57 +02:00
Craig Martin
0ad2e52499
Fix: iOS - audio does not work with headphones (#3284)
* Fix: Make AVAudioSession.Category.playAndRecord opt-in
* Fix: Call configureAudio when audioOutput is changed
* Update CHANGELOG.md
2023-10-09 22:27:29 +02:00
Konstantin
a855284d8d
feat(tvos): add custom image metadata option for tvos and add missing types for custom metadata properties (#3280)
* fix: add typescript types for custom metadata properties
* chore: add possibility to override image metadata of video playback

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2023-10-07 15:14:10 +02:00
Leonardo Russo
e6e8f621fe
fix(ios): resuming video ad after closing the in-app browser on iOS (#3275) 2023-10-06 18:43:35 +02:00
Facundo Gutierrez
f4acaccd80
fix(ios): fairplay different key per asset (#3261)
* [Fix] Replace _loadingRequest instance with _loadingRequests dictionary to support multiple concurrent requests
* Remove stored finished requests from dictionary
* Keep contentId as is, and send loadingRequest.url in licenseUrl.
* Update DRM.md

---------

Co-authored-by: Facundo Gutierrez <facundo.gutierrez@tcc.com.uy>
2023-10-05 21:37:28 +02:00