Commit Graph

365 Commits

Author SHA1 Message Date
Seyed Mostafa Hasani
1ef2b3a977
chore(android): add null check for id of videoFormat (#4174)
* chore(android): add null check for id of videoFormat

* chore: null check videoFormat.id on onBandwidthSample

* fix: PR feedback

* fix: linter error

* chore: update trackId fallback value
2024-09-17 14:11:02 +02:00
Seyed Mostafa Hasani
e57c7bda5d
feat(android): upgrade dependencies / media3 1.4.1 / androidxCore to 1.13.1 / androidxActivity 1.8.2 (#4173) 2024-09-16 13:54:51 +02:00
Olivier Bouillet
24d90e9ec8
chore(android): move contentStartTime into source prop (#4160) 2024-09-14 19:53:54 +02:00
Krzysztof Moch
b74cb59602
chore(android): add null checks (#4168) 2024-09-14 15:20:50 +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
b2fd8d62a1
fix(android): ensure pause is well tken in account after onEnd (#4147)
Issue linked to: https://github.com/TheWidlarzGroup/react-native-video/issues/2690
This original issue is not reproduced
2024-09-06 15:11:33 +02:00
Seyed Mostafa Hasani
4a2beaa147
chore(android): remove onBackPressed function in FullScreenPlayerView (#4049)
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-09-06 00:12:22 +02:00
whdudtod1273
22c21ad249
feat: Correct isBehindLiveWindow Error Handling (#4143)
* feat: Correct isBehindLiveWindow Error Handling

---------

Co-authored-by: young <young@afreecatv.com>
2024-09-04 09:54:08 +02:00
Olivier Bouillet
9707081ab9
Chore/rework fullscreen configuration (#4142)
* feat(android): handle navigation bar status in full-screen mode
* chore: update default value of prop
* chore(android): rework fullscreen configuration

---------

Co-authored-by: mostafahasani <seyedmostafahassani@gmail.com>
2024-09-04 09:53:30 +02:00
Seyed Mostafa Hasani
c51c061f43
chore(android): clean up ReactExoplayerView class (#4141) 2024-09-03 11:16:20 +02:00
Seyed Mostafa Hasani
8b8ebe9410
fix(android): show the status bar and navigation bar after exiting full-screen mode (#4112)
* fix(android):  show the status bar and navigation bar after exiting full-screen mode
2024-09-03 08:59:24 +02:00
Olivier Bouillet
308447a5ba
Fix/track selection by title (#4129)
* chore(sample): make track selection by title possible

* fix(android): fix test for track selection by title
2024-09-02 19:10:39 +02:00
Olivier Bouillet
2fa6c43615
fix(android): add subtitleStyle.subtitlesFollowVideo prop to control subtitles positionning (#4133)
* fix(android): add subtitleStyle.subtitlesFollowVideo prop to control subtitles positionning
* docs: add new prop description
* docs: add supported platform for subtitleStyle
* chore: use constructor instead of parse
2024-09-02 16:13:06 +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
Subin Yang
ca795f298a
feat(android): Support Common Media Client Data (CMCD) (#4034)
* feat(VideoNativeComponent.ts): add support for cmcd configuration in VideoSrc type to enable cmcd feature on android
feat(video.ts): introduce CmcdMode enum and CmcdConfiguration type to define cmcd configuration options

* feat(Video.tsx): add support for CMCD configuration in Video component to handle Content Management and Delivery (CMCD) headers for Android platform.

* feat(CMCDProps.kt): add CMCDProps class to handle CMCD related properties and parsing logic for React Native module

* feat(CMCDConfig.kt): add CMCDConfig class to handle CMCD configuration for ExoPlayer with support for custom data and configuration options.

* feat(ReactExoplayerViewManager.java): add support for CMCD configuration in ReactExoplayerViewManager to enable Content Management and Control Data (CMCD) for better video playback optimization.

* feat(ReactExoplayerView.java): add support for setting CmcdConfiguration.Factory to customize CMCD configuration for media playback

* feat(Source.kt): add support for CMCD properties linked to the source to enhance functionality and data handling

* docs(props.mdx): add documentation for configuring CMCD parameters in the component, including usage examples and default values

* refactor(ReactExoplayerViewManager.java): remove unused PROP_CMCD and prevCmcdConfig variables to clean up code and improve readability

* refactor(Video.tsx): simplify cmcd configuration logic for better readability and maintainability

* docs(props.mdx): improve props documentation for clarity and consistency
feat(props.mdx): add definitions for CmcdMode enum and CmcdData type to enhance understanding of CMCD data structure and usage

* refactor(CMCDProps.kt): refactor CMCDProps class to data class for improved readability and immutability
-  update CMCDProps class to use List instead of Array for properties

* refactor(Video.tsx): refactor createCmcdHeader function to improve code readability and reduce duplication

* fix(CMCDProps.kt): remove import statement for CmcdConfiguration

* feat(ReactExoplayerView.java): add support for CMCD configuration in ReactExoplayerView component
feat(ReactExoplayerViewManager.java): remove redundant CMCD configuration logic from ReactExoplayerViewManager to simplify code and improve maintainability

* fix(Video.tsx): merge _cmcd memo into src memo for optimization
2024-08-22 10:47:51 +02:00
Kamil Moskała
65faba312d
fix(android): hide surfaceView for loading time when shutter is hidden (#4060)
* fix(android): hide surfaceView for loading time when shutter is hidden

* fix: hide/show surface view without casting
2024-08-22 10:37:58 +02:00
ashlyWeiting
41e2bed6b3
feat(android): support hiding Exoplayer video duration on android (#4090)
* feat: support for hiding duration on Android

* docs: add hideDuration property to control styles documentation
2024-08-21 10:05:40 +02:00
Seyed Mostafa Hasani
7e222e8fc4
fix(android): resolve a release issue with DefaultDashChunkSource (#4097) 2024-08-17 15:33:37 +02:00
Seyed Mostafa Hasani
b7d1cabf72
refactor(android): migrate DefaultDashChunkSource to Kotlin (#4078)
* refactor(android): migrate DefaultDashChunkSource to Kotlin
2024-08-13 09:58:31 +02:00
Krzysztof Moch
899bb822a5
fix(android): build warnings (#4058) 2024-08-07 14:39:41 +02:00
Seyed Mostafa Hasani
af0302b1b7
fix(android): return the value as a float for the getCurrentPosition function (#4054)
* fix(android): return value for getCurrentPosition function

* fix: remove additional casting
2024-08-05 11:58:33 +02:00
Seyed Mostafa Hasani
74c6dd6279
refactor(android): migrate ReactExoplayerViewManager to Kotlin (#4011)
* Rename .java to .kt

* refactor(android): migrate ReactExoplayerViewManager to Kotlin

* fix: lint error

* refactor: setPreventsDisplaySleepDuringVideoPlayback function
2024-08-02 10:52:08 +02:00
Seyed Mostafa Hasani
fb1d6bdef7
fix: index of the selected track (#4012) 2024-07-24 10:08:37 +02:00
Seyed Mostafa Hasani
6189080c9a
feat(android): add error handling for Kotlin version (#4018)
* feat(android): add error handling for Kotlin version mismatch

* fix: lint error

* refactor: use variables from gradle file

* chore: downgrade required Kotlin version

* refactor: check Kotlin version

* refactor: kotlin variables in build.gradle

* refactor: kotlin variables in build.gradle

* chore(doc): update document

* chore: add dependency to build.gradle for a specific version of react-native

* fix: remove additional dependency
2024-07-24 10:07:19 +02:00
Olivier Bouillet
1ee5811c8e
fix(android): app crash at boot with old arch (#4022)
* 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: 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: fix app boot due to missing registered events

* chore: fix linter

* chore: fix build

* fix: handle code review feedbacks

* chore: revert previous change to handle only necessary fix
2024-07-22 10:56:58 +02:00
lovegaoshi
9f382163d8
fix(android): resize mode cover calculation (#4010) 2024-07-18 10:53:50 +02:00
Krzysztof Moch
ab7e02e453
fix(android): fix backward compatibility (#4020) 2024-07-18 10:51:57 +02:00
Seyed Mostafa Hasani
76d5e93c17
refactor(android): migrate BecomingNoisyListener interface to Kotlin (#3996)
* Rename .java to .kt

* refactor(android): migrate BecomingNoisyListener interface to Kotlin

* remove: java file (AudioBecomingNoisyReceiver.java)
2024-07-18 09:11:07 +02:00
Igor Malgrab
2f70c02cdc
feat(android): set originalFitsSystemWindows on fullscreen open (#4013) 2024-07-17 12:29:38 +02:00
Krzysztof Moch
5cd5e5efe7
fix(android): resolve compatibility issue 2024-07-15 12:29:57 +02:00
Seyed Mostafa Hasani
0104fbbbf3
chore(android): migrate FullScreenPlayerView to Kotlin (#3969)
* Rename .java to .kt

* chore(android): migrate FullScreenPlayerView to Kotlin

* refactor: onBackPressed function

* refactor: fullScreen button function

* fix: lint error

* chore: revert onBackPressed function
2024-07-15 12:04:49 +02:00
Seyed Mostafa Hasani
4b8d09e61f
fix(android): exit fullscreen mode after finishing video playback (#3978) 2024-07-15 12:04:19 +02:00
Seyed Mostafa Hasani
5abc223db8
refactor(android): migrate AudioOutput to Kotlin (#3993)
* Rename .java to .kt

* refactor(android): migrate AudioOutput to Kotlin

* fix: lint error

* refactor: rename of variables
2024-07-15 12:01:32 +02:00
Seyed Mostafa Hasani
df9ffde5fa
refactor(android): migrate ReactExoplayerConfig to Kotlin (#3994)
* Rename .java to .kt

* refactor(android): migrate ReactExoplayerConfig to Kotlin
2024-07-15 11:58:07 +02:00
Seyed Mostafa Hasani
4e7c64e707
refactor(android): migrate ReactExoplayerLoadErrorHandlingPolicy to Kotlin (#3995)
* Rename .java to .kt

* refactor(android): migrate ReactExoplayerLoadErrorHandlingPolicy to Kotlin
2024-07-15 11:30:53 +02:00
Seyed Mostafa Hasani
bed9b8e4d9
refactor(android): migrate AudioBecomingNoisyReceiver to Kotlin (#3997)
* Rename .java to .kt

* refactor(android): migrate AudioBecomingNoisyReceiver to Kotlin

* fix: lint error

* chore: initialize appContext with context.applicationContext
2024-07-15 10:17:07 +02:00
Kamil Moskała
0a55ace0ca
fix(android): handle aspect ratio for rotated videos (#4000) 2024-07-15 10:15:29 +02:00
YangJH
f82268be1b
fix(android): fix onVideoLoad event field key (#4001)
* fix(android): fix onVideoLoad event naturalSize field key

* fix(android): fix onVideoLoad event currentTime field key
2024-07-15 10:14:56 +02:00
YangJH
05623c9f54
fix(android): fix android notification controller order (#4002) 2024-07-15 10:14:31 +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
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
Seyed Mostafa Hasani
b25e43ee79
chore(android): migrate DataSourceUtil to Kotlin (#3984)
* Rename .java to .kt

* chore(android): migrate DataSourceUtil to Kotlin

* fix: type issue in DataSourceUtil

* fix: lint error

* chore: refactor DataSourceUtil with object & @JvmStatic

* fix: lint error
2024-07-11 10:07:05 +02:00
Seyed Mostafa Hasani
452e42f1dd
chore(android): migrate AspectRatioFrameLayout to Kotlin (#3985)
* Rename .java to .kt

* chore(android): migrate AspectRatioFrameLayout to Kotlin

* chore: refactor setter and getter of class

* fix: use field
2024-07-11 10:06:22 +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
08f6caa645
feat: add expo plugins (#3933)
* feat: add expo plugins

* add export

* fix import

* fix bugs

* build `lib` to `CommonJS`

* restore `build.gradle`

* remove plugin tmp

* add expo plugin for ios caching

* add docs for expo plugin

* fix expo plugin export

* fix docs
2024-07-10 11:49:13 +02:00
Seyed Mostafa Hasani
1728373d11
chore(android): migrate DefaultReactExoplayerConfig to Kotlin (#3983)
* Rename .java to .kt

* chore(android): migrate DefaultReactExoplayerConfig to Kotlin
2024-07-10 10:20:16 +02:00
YangJH
7562669fd6
feat(android): Bump default media3 version from v1.1.1 to v1.3.1 (#3977) ⚠️ need targetSdkVersion 34 2024-07-06 22:16:07 +02:00
YangJH
3c9b1b571a
refactor(android): migrate VideoEventEmitter to Kotlin (#3962)
* refactor(android): migrate VideoEventEmitter to Kotlin

* feat(android): apply rewritten EventEmitter's functions

* refactor(android): remove duplicated code

* fix(android): fix lint error

* fix(android): fix event name value

* refactor(android): rename of event constants for Fabric

- https://github.com/facebook/react-native/blob/v0.74.3/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java#L136-L138
2024-07-04 14:01:28 +02:00
Seyed Mostafa Hasani
530686ca82
fix(android): build issue on the latest react-native version (#3963) 2024-07-02 22:40:25 +02:00
YangJH
3f11894c2b
fix(android): fix wrong module name (#3959) 2024-06-30 18:20:08 +02:00