Commit Graph

375 Commits

Author SHA1 Message Date
Krzysztof Moch
352dfbbc9b
fix(android): sideloaded subtitles (#4232) 2024-10-11 22:50:22 +02:00
HyunWoo Lee (Nunu Lee)
78f4f0480d
feat(exoplayerview): Migrate ExoPlayerView to kotlin (#4038) 2024-10-11 09:08:13 +02:00
Olivier Bouillet
d86adc52f3
Chore: rework ad props (#4220)
* fix: move ad configuration in source
2024-10-10 23:53:39 +02:00
Olivier Bouillet
9a3fcda3b8
feat: add setSource API function fix ads playback (#4185)
* feat: add setSource API function fix ads playback
2024-10-10 22:59:41 +02:00
Seyed Mostafa Hasani
d1883a7e00
feat(android): add settings button to control video playback speed (#4211) 2024-10-05 18:34:25 +02:00
Paul Rinaldi
40872f5ea7
fix(android) Use startForegroundService and do not delete the notification channel until onDestroy (#4105)
See https://developer.android.com/develop/background-work/services/foreground-services\#fgs-prerequisites
    See rationale here https://stackoverflow.com/questions/45525214/are-there-any-benefits-to-using-context-startforegroundserviceintent-instead-o
    Deleting the notification channel while the foreground service is still running is not permitted.
2024-10-03 08:23:17 +02:00
Seyed Mostafa Hasani
149924ffcb
feat(android): add live video label configuration (#4190) 2024-10-02 23:37:18 +02:00
Kamil Moskała
279cc0e5ed
feat(android): allow to hide specific controls (#4183)
* feat(android): enable to hide specific controls

* fix: ts

* fix: lint

* docs: update `controlsStyles` docs
2024-09-29 20:51:02 +02:00
Olivier Bouillet
3ecf324bb3
fix(android): bad rotation handling (#4205) 2024-09-29 20:48:44 +02:00
Olivier Bouillet
7f6b500c82
fix(android): ensure maxbitrate & selectedVideoTrack interact correctly (#4155) 2024-09-17 15:57:26 +02:00
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