Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: move view type and drm in source #3867

Merged

Conversation

freeboub
Copy link
Collaborator

@freeboub freeboub commented May 31, 2024

Summary

Refactor: move drm inside source prop.
This is an internal change, but API change are also exposed to UI.
Add multiDrm flag to fix: #3942

Motivation

Avoid real time issue when drm and source are not changed in the same time.

Changes

many refactor to move drm prop inside the source object. It make sense because we must have drm information before starting any protected playback.

Test plan

Can be tested in sample.

freeboub and others added 23 commits May 5, 2024 21:06
…ideo

# Conflicts:
#	android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
#	src/Video.tsx
…fix/avoidVideoResizingFlickering

# Conflicts:
#	.github/ISSUE_TEMPLATE/bug-report.yml
…ideo into chore/refactorDrmProps

# Conflicts:
#	android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
#	android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
The origianl behavior has been kept for interoperability, but marked as deprecated in doc
@freeboub freeboub marked this pull request as draft May 31, 2024 16:49
freeboub added 2 commits June 10, 2024 22:48
…ideo into feat/moveViewTypeAndDrmInSource

# Conflicts:
#	android/src/main/java/com/brentvatne/common/api/DRMProps.kt
#	android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
#	android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
@freeboub
Copy link
Collaborator Author

@YangJonghun thank you for the new review! I fix some of the comment. But originally I didn't expect doing this big PR so soon. Can we please focus on: https://github.com/TheWidlarzGroup/react-native-video/pull/3846/files please ?

@YangJonghun I merged the other Pr, thank you for the review. I will splitt this PR for easier review (it is too big now I think)

@freeboub
Copy link
Collaborator Author

@YangJonghun Just for information, I tested to change useTextureView during playback and it works fine. I will then split the PR in 2: 1 for the surface type fix, one other for the DRM object management. Thank you for the feedbacks anyway !

@YangJonghun
Copy link
Collaborator

@freeboub
I've had experience capturing DRM-free video and needing the view type to be dynamic. However, this is not currently a feature of this library, so I don't think it's a problem.
Thanks for great work :)

freeboub added 3 commits June 27, 2024 12:04
…ideo into feat/moveViewTypeAndDrmInSource

# Conflicts:
#	android/src/main/java/com/brentvatne/common/api/Source.kt
#	android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java
#	android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java
#	docs/pages/component/props.mdx
#	examples/basic/ios/Podfile.lock
#	src/Video.tsx
#	src/specs/VideoNativeComponent.ts
#	src/types/video.ts
@freeboub freeboub requested a review from YangJonghun June 27, 2024 10:58
@freeboub
Copy link
Collaborator Author

freeboub commented Jun 27, 2024

@KrzysztofMoch @YangJonghun I clean up this PR, so it is ready to be merged on my side.
(no more viewType change)
I also add multiDrm flag to support key rotation on android

@KrzysztofMoch KrzysztofMoch changed the title Feat/move view type and drm in source refactor: move view type and drm in source Jun 27, 2024
Copy link
Member

@KrzysztofMoch KrzysztofMoch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me - only small issue on iOS

❌  /Users/runner/work/react-native-video/react-native-video/ios/Video/RCTVideo.swift:1255:9: cannot find '_drm' in scope

src/types/video.ts Outdated Show resolved Hide resolved
freeboub added 2 commits July 5, 2024 23:17
…ideo into feat/moveViewTypeAndDrmInSource

# Conflicts:
#	android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
#	examples/basic/src/VideoPlayer.tsx
@freeboub
Copy link
Collaborator Author

freeboub commented Jul 5, 2024

Finally fix ios issue ...

@KrzysztofMoch KrzysztofMoch merged commit 66dcf32 into TheWidlarzGroup:master Jul 10, 2024
12 checks passed
moskalakamil pushed a commit to moskalakamil/react-native-video that referenced this pull request Jul 12, 2024
* 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 (TheWidlarzGroup#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 <[email protected]>
moskalakamil pushed a commit to moskalakamil/react-native-video that referenced this pull request Jul 17, 2024
* 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 (TheWidlarzGroup#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 <[email protected]>
github-merge-queue bot referenced this pull request in valora-inc/wallet Sep 11, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-native-video](https://thewidlarzgroup.github.io/react-native-video/)
([source](https://redirect.github.com/TheWidlarzGroup/react-native-video))
| [`^6.1.2` ->
`^6.5.0`](https://renovatebot.com/diffs/npm/react-native-video/6.1.2/6.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-video/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-video/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-video/6.1.2/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-video/6.1.2/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TheWidlarzGroup/react-native-video
(react-native-video)</summary>

###
[`v6.5.0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/blob/HEAD/CHANGELOG.md#650-2024-09-04)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.5...v6.5.0)

##### Bug Fixes

- **android:** show the status bar and navigation bar after exiting
full-screen mode
([#&#8203;4112](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4112))
([8b8ebe9](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/8b8ebe9410e95085e5602393c2ce3de814df4a96))
- **android:** add subtitleStyle.subtitlesFollowVideo prop to control
subtitles positionning
([#&#8203;4133](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4133))
([2fa6c43](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/2fa6c43615c1bc0a3bbcb5f472ffaeb8ae16a1af))
- **android:** hide surfaceView for loading time when shutter is hidden
([#&#8203;4060](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4060))
([65faba3](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/65faba312d23de981972d2b6ffecefbc87ecac61))
- **expo-plugin:** adding bg mode if none exist yet
([#&#8203;4126](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4126))
([451806c](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/451806c547591fbe5714b133e704ffac9efb05d8))
- **ios:** Add handler for Earpods play/pause command
([#&#8203;4116](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4116))
([9c38d9f](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/9c38d9f4ef42c3e275ee39a08aa227e6b976fdb2))
- **ios:** build fail due to an unwrapped value
([#&#8203;4101](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4101))
([0a1085c](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/0a1085ce03152d58d98da408dbe79e76fa5ebc1a))
- **ios:** ensure behavior is correct with empty text track list
([#&#8203;4123](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4123))
([3a32d67](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3a32d67087c39bcf7904043d15a2fdba65307f4e))
- **ios:** ensure we don't disable tracks when not necessary (causes
black screen)
([#&#8203;4130](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4130))
([89df9d6](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/89df9d69ff96f7d6ff3d493bf1a3eb9c3da51c3c))
- **ios:** fix onBandwidth update event (old ios api is deprecated and
doens't work)
([#&#8203;4140](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4140))
([d6bae3c](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/d6bae3cd076018f07556ab27af2779479bc7ff7d))
- **sample:** update dependencies to fix local asset playback
([#&#8203;4121](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4121))
([7a2b401](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7a2b4014f40758a025fcd6b388448d3559ec6a4a))
- set does not have `find` method
([#&#8203;4110](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4110))
([7db7024](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7db7024cb36ea34289fddf5c7f66e7b4d7827146))
- **tvos:** fix build (and update sample)
([#&#8203;4134](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4134))
([688d98d](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/688d98d68f888a59bde1ee33aa844ac63c9026a5))
- **VisionOS:** do not access to isExternalPlaybackActive on VisionOS
([#&#8203;4109](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4109))
([0576eac](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/0576eacfddb32c4dcc072b6fd3cbf74cf25946a4))

##### Features

- add ads localize
([#&#8203;4113](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4113))
([703ed43](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/703ed4399667e0142704d19686563dd62fb4883d))
- **android:** Support Common Media Client Data (CMCD)
([#&#8203;4034](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4034))
([ca795f2](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ca795f298a99a183b81561ef7e09d8d1e8addaf5))
- **android:** support hiding Exoplayer video duration on android
([#&#8203;4090](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4090))
([41e2bed](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/41e2bed6b36f74a28d7dd640414c6d5ccbec0399))
- Correct isBehindLiveWindow Error Handling
([#&#8203;4143](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4143))
([22c21ad](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/22c21ad249879fe4ff8fb119384ebc82766106c3))

####
[6.4.5](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.4...v6.4.5)
(2024-08-17)

##### Bug Fixes

- **android:** resolve a release issue with DefaultDashChunkSource
([#&#8203;4097](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4097))
([7e222e8](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7e222e8fc4f3c47a1c9cd2fbf5ff012bcbe98a7f))

- refactor(android): migrate DefaultDashChunkSource to Kotlin
([#&#8203;4078](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4078))
([`b7d1cab`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/b7d1cabf))

- fix(ios): remove resume logic in notification seek closure
([#&#8203;4068](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4068))
([`c6ae17e`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c6ae17e4))

- chore(doc): update document (props & method)
([#&#8203;4072](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4072))
([`cd41a1b`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/cd41a1b2))

- fix(android): build warnings
([#&#8203;4058](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4058))
([`899bb82`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/899bb822))

- infra: update feature request form
([#&#8203;4065](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4065))
([`6c03d0a`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/6c03d0a7))

- fix(ios): override source metadata with custom metadata
([#&#8203;4050](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4050))
([`38aa2b0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/38aa2b05))

- fix(android): return the value as a float for the getCurrentPosition
function
([#&#8203;4054](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4054))
([`af0302b`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/af0302b1))

- refactor(android): migrate ReactExoplayerViewManager to Kotlin
([#&#8203;4011](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4011))
([`74c6dd6`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/74c6dd62))

- fix(android): viewType is ignored when its value is ViewType.TEXTURE
([#&#8203;4031](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4031))
([`22cfd6c`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/22cfd6ce))

- fix(ios): metadata update race
([#&#8203;4033](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4033))
([`08a57a3`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/08a57a3b))

- fix(ios): updated getLicense call to work with new syntax, and fixed
spelling error
([#&#8203;4014](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4014))
([#&#8203;4042](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4042))
([`2348c5e`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/2348c5e4))

####
[6.4.3](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.2...v6.4.3)
(2024-07-24)

##### Bug Fixes

- **android:** app crash at boot with old arch
([#&#8203;4022](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4022))
([1ee5811](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/1ee5811c8e0ecfc2486f5120b575b57c6396e0f8)),
closes
[#&#8203;3875](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3875)
- **android:** fix backward compatibility
([#&#8203;4020](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4020))
([ab7e02e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ab7e02e4538c97340f13fb052b1cad94408b48fa))
- **android:** resize mode cover calculation
([#&#8203;4010](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4010))
([9f38216](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/9f382163d83c3331518e2784b335da28179ac91d))
- index of the selected track
([#&#8203;4012](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4012))
([fb1d6bd](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/fb1d6bdef7210d43f9e34f673691a9a17b95424e))
- **sample:** boot failure on emulator
([#&#8203;4016](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4016))
([ffbc977](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ffbc977ff90248aeb270626620f5c3553f955617))

##### Features

- add ability to define `poster` props as Image type and render poster
as custom component
([#&#8203;3972](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3972))
([adbd06e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/adbd06e2df557b22b8a3a19073a2de1cbb964833))
- **android:** add error handling for Kotlin version
([#&#8203;4018](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4018))
([6189080](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/6189080c9aac89aa3d2a4e60049999d8880bc971))
- **android:** set originalFitsSystemWindows on fullscreen open
([#&#8203;4013](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4013))
([2f70c02](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/2f70c02cdcf6488338df197feb61eeb10ed3281f))

####
[6.4.2](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.1...v6.4.2)
(2024-07-15)

##### Bug Fixes

- **android:** exit fullscreen mode after finishing video playback
([#&#8203;3978](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3978))
([4b8d09e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/4b8d09e61f79a319ba5816dd342b5c0fd02d6e07))
- **android:** fix android notification controller order
([#&#8203;4002](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4002))
([05623c9](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/05623c9f5447f67acb535487de8918210b5ffec7))
- **android:** fix onVideoLoad event field key
([#&#8203;4001](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4001))
([f82268b](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/f82268be1bc33e5c61dbb031d7937197da0b67e5))
- **android:** handle aspect ratio for rotated videos
([#&#8203;4000](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4000))
([0a55ace](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/0a55ace0ca92f56394235f7c651d3a160e6a3c90))
- **android:** resolve compatibility issue
([5cd5e5e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/5cd5e5efe70b49d76fb27e3220a1df12b32901a6))
- **example/basic:** select resizeMode
([#&#8203;3989](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3989))
([39cf477](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/39cf477ceb37c6ecc38cbdd9077a556c81fd9c3d))
- **ts:** make multiDrm prop optional type
([#&#8203;3999](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3999))
([79c3076](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/79c30767fcf67e75e70ceb64a17736b5e3de63c6))

####
[6.4.1](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.0...v6.4.1)
(2024-07-12)

##### Bug Fixes

- expo plugin export
([#&#8203;3992](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3992))
([de8ade0](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/de8ade06202cfdb3dd7fec635b6e8c6cdfd04e47))

- fix(ios): remove pip check for other platforms
([#&#8203;3991](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3991))
([`40a7282`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/40a72825))

- feat: add `isSeeking` to `onPlaybackStateChanged`
([#&#8203;3899](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3899))
([`111a5d2`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/111a5d21))

- chore(android): migrate DataSourceUtil to Kotlin
([#&#8203;3984](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3984))
([`b25e43e`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/b25e43ee))

- chore(android): migrate AspectRatioFrameLayout to Kotlin
([#&#8203;3985](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3985))
([`452e42f`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/452e42f1))

- refactor: move view type and drm in source
([#&#8203;3867](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3867))
([`66dcf32`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/66dcf32b))

- feat: add expo plugins
([#&#8203;3933](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3933))
([`08f6caa`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/08f6caa6))

- docs: update deprecated tool
([#&#8203;3982](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3982))
([`25c74e0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/25c74e05))

- chore(android): migrate DefaultReactExoplayerConfig to Kotlin
([#&#8203;3983](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3983))
([`1728373`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/1728373d))

- fix(ios): don't pause playback when entering background
([#&#8203;3973](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3973))
([`ccffcfd`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ccffcfd7))

- chore(example/basic): refactor state variable
([#&#8203;3949](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3949))
([`a3ecc01`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/a3ecc010))

- feat(android): Bump default media3 version from v1.1.1 to v1.3.1
([#&#8203;3977](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3977))
:warning: need targetSdkVersion 34
([`7562669`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7562669f))

- feat: modified Fabric example android build.gradle for resolving build
issue
([#&#8203;3976](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3976))
([`1d6fb29`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/1d6fb297))

- chore: upgrade react-native & expo version in the basic example app
([#&#8203;3964](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3964))
([`01a00b1`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/01a00b12))

- refactor(android): migrate VideoEventEmitter to Kotlin
([#&#8203;3962](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3962))
([`3c9b1b5`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3c9b1b57))

- fix(ios): fix fullscreen view controller ANR
([#&#8203;3952](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3952))
([`7def3ac`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7def3ac3))

- chore(example/fabric): bump up fabric example android deps
([#&#8203;3957](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3957))
([`de6e719`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/de6e7196))

- refactor(ios): refactor NowPlayingInfoCenerManager.swift
([#&#8203;3968](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3968))
([`76c6329`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/76c63291))

- fix(android): build issue on the latest react-native version
([#&#8203;3963](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3963))
([`530686c`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/530686ca))

- feat(fabric): updated ios podspec for implementing new architecture
([#&#8203;3961](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3961))
([`df29c23`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/df29c231))

- fix(android): fix wrong module name
([#&#8203;3959](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3959))
([`3f11894`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3f11894c))

- refactor(android): migrate ReactVideoPackage to Kotlin
([#&#8203;3955](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3955))
([`702a0d9`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/702a0d9d))

- refactor(android): migrate VideoDecoderPropertiesModule to Kotlin
([#&#8203;3954](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3954))
([`9958598`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/99585987))

- feat: bump up fabric example react-native iOS
([#&#8203;3951](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3951))
([`e5a2ee3`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/e5a2ee3b))

- fix(android): added setAllowChunklessPreparation to
HlsMediaSource.Factory to allow build success on projects without HLS
support
([#&#8203;3948](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3948))
([#&#8203;3950](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3950))
([`322d7e9`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/322d7e99))

- refactor: basic example from class component to functional component
([#&#8203;3934](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3934))
([`d4f1648`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/d4f16486))

- chore(android): rework view type
([#&#8203;3940](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3940))
([`b431d09`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/b431d09e))

- chore: update homepage field in package.json
([#&#8203;3945](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3945))
([`6e13376`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/6e133768))

- feat(android): allow building exoplayer from source
([#&#8203;3932](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3932))
([`a7d834a`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/a7d834a8))

- feat: add plugins management
([#&#8203;3909](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3909))
([`91d27a6`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/91d27a60))

- Chore(docs): fix typo
([#&#8203;3938](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3938))
([`3cfb96a`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3cfb96ad))

###
[`v6.4.5`](https://redirect.github.com/TheWidlarzGroup/react-native-video/blob/HEAD/CHANGELOG.md#645-2024-08-17)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.4...v6.4.5)

##### Bug Fixes

- **android:** resolve a release issue with DefaultDashChunkSource
([#&#8203;4097](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4097))
([7e222e8](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7e222e8fc4f3c47a1c9cd2fbf5ff012bcbe98a7f))

- refactor(android): migrate DefaultDashChunkSource to Kotlin
([#&#8203;4078](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4078))
([`b7d1cab`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/b7d1cabf))

- fix(ios): remove resume logic in notification seek closure
([#&#8203;4068](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4068))
([`c6ae17e`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c6ae17e4))

- chore(doc): update document (props & method)
([#&#8203;4072](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4072))
([`cd41a1b`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/cd41a1b2))

- fix(android): build warnings
([#&#8203;4058](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4058))
([`899bb82`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/899bb822))

- infra: update feature request form
([#&#8203;4065](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4065))
([`6c03d0a`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/6c03d0a7))

- fix(ios): override source metadata with custom metadata
([#&#8203;4050](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4050))
([`38aa2b0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/38aa2b05))

- fix(android): return the value as a float for the getCurrentPosition
function
([#&#8203;4054](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4054))
([`af0302b`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/af0302b1))

- refactor(android): migrate ReactExoplayerViewManager to Kotlin
([#&#8203;4011](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4011))
([`74c6dd6`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/74c6dd62))

- fix(android): viewType is ignored when its value is ViewType.TEXTURE
([#&#8203;4031](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4031))
([`22cfd6c`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/22cfd6ce))

- fix(ios): metadata update race
([#&#8203;4033](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4033))
([`08a57a3`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/08a57a3b))

- fix(ios): updated getLicense call to work with new syntax, and fixed
spelling error
([#&#8203;4014](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4014))
([#&#8203;4042](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4042))
([`2348c5e`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/2348c5e4))

###
[`v6.4.4`](https://redirect.github.com/TheWidlarzGroup/react-native-video/releases/tag/v6.4.4)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.3...v6.4.4)

#### What's Changed

##### iOS

- fix(ios): updated getLicense call to work with new syntax, and fixed
spelling error
([#&#8203;4014](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4014))
by [@&#8203;EETVApps](https://redirect.github.com/EETVApps) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4042](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4042)
- fix(ios): metadata update race by
[@&#8203;blazlew](https://redirect.github.com/blazlew) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4033](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4033)
- fix(ios): override source metadata with custom metadata by
[@&#8203;KrzysztofMoch](https://redirect.github.com/KrzysztofMoch) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4050](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4050)

##### Android

- fix(android): viewType is ignored when set to ViewType.TEXTURE by
[@&#8203;mlecoq](https://redirect.github.com/mlecoq) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4031](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4031)
- refactor(android): migrate ReactExoplayerViewManager to Kotlin by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4011](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4011)
- fix(android): return the value as a float for the getCurrentPosition
function by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4054](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4054)
- fix(android): build warnings by
[@&#8203;KrzysztofMoch](https://redirect.github.com/KrzysztofMoch) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4058](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4058)
- Remove resume logic in notification seek closure by
[@&#8203;paul-rinaldi](https://redirect.github.com/paul-rinaldi) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4068](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4068)
- refactor(android): migrate DefaultDashChunkSource to Kotlin by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4078](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4078)

##### Other

- chore(doc): update document (props & method) by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4072](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4072)

#### New Contributors

- [@&#8203;blazlew](https://redirect.github.com/blazlew) made their
first contribution in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4033](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4033)
- [@&#8203;mlecoq](https://redirect.github.com/mlecoq) made their first
contribution in
[https://github.com/TheWidlarzGroup/react-native-video/pull/4031](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/4031)

**Full Changelog**:
https://github.com/TheWidlarzGroup/react-native-video/compare/v6.4.3...v6.4.4

###
[`v6.4.3`](https://redirect.github.com/TheWidlarzGroup/react-native-video/blob/HEAD/CHANGELOG.md#643-2024-07-24)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.2...v6.4.3)

##### Bug Fixes

- **android:** app crash at boot with old arch
([#&#8203;4022](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4022))
([1ee5811](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/1ee5811c8e0ecfc2486f5120b575b57c6396e0f8)),
closes
[#&#8203;3875](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3875)
- **android:** fix backward compatibility
([#&#8203;4020](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4020))
([ab7e02e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ab7e02e4538c97340f13fb052b1cad94408b48fa))
- **android:** resize mode cover calculation
([#&#8203;4010](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4010))
([9f38216](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/9f382163d83c3331518e2784b335da28179ac91d))
- index of the selected track
([#&#8203;4012](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4012))
([fb1d6bd](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/fb1d6bdef7210d43f9e34f673691a9a17b95424e))
- **sample:** boot failure on emulator
([#&#8203;4016](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4016))
([ffbc977](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ffbc977ff90248aeb270626620f5c3553f955617))

##### Features

- add ability to define `poster` props as Image type and render poster
as custom component
([#&#8203;3972](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3972))
([adbd06e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/adbd06e2df557b22b8a3a19073a2de1cbb964833))
- **android:** add error handling for Kotlin version
([#&#8203;4018](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4018))
([6189080](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/6189080c9aac89aa3d2a4e60049999d8880bc971))
- **android:** set originalFitsSystemWindows on fullscreen open
([#&#8203;4013](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4013))
([2f70c02](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/2f70c02cdcf6488338df197feb61eeb10ed3281f))

###
[`v6.4.2`](https://redirect.github.com/TheWidlarzGroup/react-native-video/blob/HEAD/CHANGELOG.md#642-2024-07-15)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.1...v6.4.2)

##### Bug Fixes

- **android:** exit fullscreen mode after finishing video playback
([#&#8203;3978](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3978))
([4b8d09e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/4b8d09e61f79a319ba5816dd342b5c0fd02d6e07))
- **android:** fix android notification controller order
([#&#8203;4002](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4002))
([05623c9](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/05623c9f5447f67acb535487de8918210b5ffec7))
- **android:** fix onVideoLoad event field key
([#&#8203;4001](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4001))
([f82268b](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/f82268be1bc33e5c61dbb031d7937197da0b67e5))
- **android:** handle aspect ratio for rotated videos
([#&#8203;4000](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/4000))
([0a55ace](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/0a55ace0ca92f56394235f7c651d3a160e6a3c90))
- **android:** resolve compatibility issue
([5cd5e5e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/5cd5e5efe70b49d76fb27e3220a1df12b32901a6))
- **example/basic:** select resizeMode
([#&#8203;3989](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3989))
([39cf477](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/39cf477ceb37c6ecc38cbdd9077a556c81fd9c3d))
- **ts:** make multiDrm prop optional type
([#&#8203;3999](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3999))
([79c3076](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/79c30767fcf67e75e70ceb64a17736b5e3de63c6))

###
[`v6.4.1`](https://redirect.github.com/TheWidlarzGroup/react-native-video/blob/HEAD/CHANGELOG.md#641-2024-07-12)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.4.0...v6.4.1)

##### Bug Fixes

- expo plugin export
([#&#8203;3992](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3992))
([de8ade0](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/de8ade06202cfdb3dd7fec635b6e8c6cdfd04e47))

- fix(ios): remove pip check for other platforms
([#&#8203;3991](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3991))
([`40a7282`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/40a72825))

- feat: add `isSeeking` to `onPlaybackStateChanged`
([#&#8203;3899](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3899))
([`111a5d2`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/111a5d21))

- chore(android): migrate DataSourceUtil to Kotlin
([#&#8203;3984](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3984))
([`b25e43e`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/b25e43ee))

- chore(android): migrate AspectRatioFrameLayout to Kotlin
([#&#8203;3985](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3985))
([`452e42f`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/452e42f1))

- refactor: move view type and drm in source
([#&#8203;3867](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3867))
([`66dcf32`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/66dcf32b))

- feat: add expo plugins
([#&#8203;3933](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3933))
([`08f6caa`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/08f6caa6))

- docs: update deprecated tool
([#&#8203;3982](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3982))
([`25c74e0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/25c74e05))

- chore(android): migrate DefaultReactExoplayerConfig to Kotlin
([#&#8203;3983](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3983))
([`1728373`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/1728373d))

- fix(ios): don't pause playback when entering background
([#&#8203;3973](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3973))
([`ccffcfd`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ccffcfd7))

- chore(example/basic): refactor state variable
([#&#8203;3949](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3949))
([`a3ecc01`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/a3ecc010))

- feat(android): Bump default media3 version from v1.1.1 to v1.3.1
([#&#8203;3977](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3977))
:warning: need targetSdkVersion 34
([`7562669`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7562669f))

- feat: modified Fabric example android build.gradle for resolving build
issue
([#&#8203;3976](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3976))
([`1d6fb29`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/1d6fb297))

- chore: upgrade react-native & expo version in the basic example app
([#&#8203;3964](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3964))
([`01a00b1`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/01a00b12))

- refactor(android): migrate VideoEventEmitter to Kotlin
([#&#8203;3962](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3962))
([`3c9b1b5`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3c9b1b57))

- fix(ios): fix fullscreen view controller ANR
([#&#8203;3952](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3952))
([`7def3ac`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7def3ac3))

- chore(example/fabric): bump up fabric example android deps
([#&#8203;3957](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3957))
([`de6e719`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/de6e7196))

- refactor(ios): refactor NowPlayingInfoCenerManager.swift
([#&#8203;3968](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3968))
([`76c6329`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/76c63291))

- fix(android): build issue on the latest react-native version
([#&#8203;3963](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3963))
([`530686c`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/530686ca))

- feat(fabric): updated ios podspec for implementing new architecture
([#&#8203;3961](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3961))
([`df29c23`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/df29c231))

- fix(android): fix wrong module name
([#&#8203;3959](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3959))
([`3f11894`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3f11894c))

- refactor(android): migrate ReactVideoPackage to Kotlin
([#&#8203;3955](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3955))
([`702a0d9`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/702a0d9d))

- refactor(android): migrate VideoDecoderPropertiesModule to Kotlin
([#&#8203;3954](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3954))
([`9958598`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/99585987))

- feat: bump up fabric example react-native iOS
([#&#8203;3951](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3951))
([`e5a2ee3`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/e5a2ee3b))

- fix(android): added setAllowChunklessPreparation to
HlsMediaSource.Factory to allow build success on projects without HLS
support
([#&#8203;3948](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3948))
([#&#8203;3950](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3950))
([`322d7e9`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/322d7e99))

- refactor: basic example from class component to functional component
([#&#8203;3934](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3934))
([`d4f1648`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/d4f16486))

- chore(android): rework view type
([#&#8203;3940](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3940))
([`b431d09`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/b431d09e))

- chore: update homepage field in package.json
([#&#8203;3945](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3945))
([`6e13376`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/6e133768))

- feat(android): allow building exoplayer from source
([#&#8203;3932](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3932))
([`a7d834a`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/a7d834a8))

- feat: add plugins management
([#&#8203;3909](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3909))
([`91d27a6`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/91d27a60))

- Chore(docs): fix typo
([#&#8203;3938](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3938))
([`3cfb96a`](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3cfb96ad))

###
[`v6.4.0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/releases/tag/v6.4.0)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.3.0...v6.4.0)

##### What's Changed

##### General

- feat: add plugins management by
[@&#8203;freeboub](https://redirect.github.com/freeboub) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3909](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3909)
- feat: add expo plugins by
[@&#8203;KrzysztofMoch](https://redirect.github.com/KrzysztofMoch) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3933](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3933)
- fix: build issue on the latest react-native version by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3963](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3963)
- refactor: move view type and drm in source by
[@&#8203;freeboub](https://redirect.github.com/freeboub) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3867](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3867)
- feat: add `isSeeking` to `onPlaybackStateChanged` by
[@&#8203;KrzysztofMoch](https://redirect.github.com/KrzysztofMoch) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3899](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3899)

##### Android

- feat(android): Bump default media3 version from v1.1.1 to v1.3.1 by
[@&#8203;YangJonghun](https://redirect.github.com/YangJonghun) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3977](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3977)
- feat(android): allow building exoplayer from source by
[@&#8203;freeboub](https://redirect.github.com/freeboub) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3932](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3932)
- chore(android): rework view type by
[@&#8203;freeboub](https://redirect.github.com/freeboub) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3940](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3940)
- fix(android): added setAllowChunklessPreparation to
HlsMediaSource.Factory stub by
[@&#8203;EETVApps](https://redirect.github.com/EETVApps) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3950](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3950)
- refactor(android): migrate VideoDecoderPropertiesModule to Kotlin by
[@&#8203;YangJonghun](https://redirect.github.com/YangJonghun) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3954](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3954)
- refactor(android): migrate ReactVideoPackage to Kotlin by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3955](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3955)
- fix(android): fix VideoDecoderPropertiesModule module name by
[@&#8203;YangJonghun](https://redirect.github.com/YangJonghun) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3959](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3959)
- refactor(android): migrate VideoEventEmitter to Kotlin by
[@&#8203;YangJonghun](https://redirect.github.com/YangJonghun) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3962](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3962)
- chore(android): migrate DefaultReactExoplayerConfig to Kotlin by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3983](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3983)
- chore(android): migrate AspectRatioFrameLayout to Kotlin by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3985](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3985)
- chore(android): migrate DataSourceUtil to Kotlin by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3984](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3984)

##### iOS

- refactor(ios): refactor `NowPlayingInfoCenerManager` by
[@&#8203;YangJonghun](https://redirect.github.com/YangJonghun) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3968](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3968)
- fix(ios): fix fullscreen view controller ANR by
[@&#8203;YangJonghun](https://redirect.github.com/YangJonghun) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3952](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3952)
- fix(ios): don't pause playback when entering background by
[@&#8203;KrzysztofMoch](https://redirect.github.com/KrzysztofMoch) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3973](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3973)
- fix(ios): remove pip check for other platforms by
[@&#8203;KrzysztofMoch](https://redirect.github.com/KrzysztofMoch) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3991](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3991)

##### Other

- chore(docs): fix typo by
[@&#8203;freeboub](https://redirect.github.com/freeboub) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3938](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3938)
- chore: update homepage field in package.json by
[@&#8203;Simek](https://redirect.github.com/Simek) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3945](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3945)
- chore(example/basic): refactor basic example from class component to
functional component by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3934](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3934)
- chore(example/basic): bump up fabric example react-native iOS by
[@&#8203;yungblud](https://redirect.github.com/yungblud) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3951](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3951)
- feat(fabric): updated ios podspec for implementing new architecture by
[@&#8203;yungblud](https://redirect.github.com/yungblud) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3961](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3961)
- chore: upgrade react-native & expo version in the basic example app by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3964](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3964)
- feat: modified Fabric example android build.gradle for resolving build
issue by [@&#8203;yungblud](https://redirect.github.com/yungblud) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3976](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3976)
- chore(example/basic): refactor state variable by
[@&#8203;seyedmostafahasani](https://redirect.github.com/seyedmostafahasani)
in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3949](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3949)
- docs: update deprecated tool by
[@&#8203;moskalakamil](https://redirect.github.com/moskalakamil) in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3982](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3982)

##### New Contributors

- [@&#8203;Simek](https://redirect.github.com/Simek) made their first
contribution in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3945](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3945)
- [@&#8203;EETVApps](https://redirect.github.com/EETVApps) made their
first contribution in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3950](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3950)
- [@&#8203;moskalakamil](https://redirect.github.com/moskalakamil) made
their first contribution in
[https://github.com/TheWidlarzGroup/react-native-video/pull/3982](https://redirect.github.com/TheWidlarzGroup/react-native-video/pull/3982)

**Full Changelog**:
https://github.com/TheWidlarzGroup/react-native-video/compare/v6.3.0...v6.4.0

###
[`v6.3.0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/blob/HEAD/CHANGELOG.md#630-2024-06-22)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.2.0...v6.3.0)

##### Bug Fixes

- **android:** allow chunk less preparation
([#&#8203;3913](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3913))
([264b57a](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/264b57aa2ed01b52c09b2992d5ca61e33871315b))
- **android:** avoid crash multiplayer with notification
([#&#8203;3931](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3931))
([104ee70](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/104ee703bac0f7d5fb162d17c30f65f8071d07a6))
- **android:** show controls in notification on older androids
([#&#8203;3886](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3886))
([098a754](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/098a754110a2c58fc18062769f4dd83775d20de4))
- **android:** use UI thread to pause when lost audio focus
([#&#8203;3916](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3916))
([856b1dd](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/856b1dd58ba9bb1832397ee0fc86f778f737798f))
- **ios:** crash on ads after leaving the app
([#&#8203;3911](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3911))
([3d6bc94](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/3d6bc9409c2111760620a821466b0ea0f1970681))
- **ios:** missing notification controls when enabled from start
([#&#8203;3898](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3898))
([2d793db](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/2d793dbde16cc140d1e7b873c40ff4dec285e253))
- **JS:** safety check on resolve uri
([#&#8203;3915](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3915))
([84bb910](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/84bb910d10e3e3d70f9e92b57c17de829d73218a))
- **typescript:** type checks on selectedTextTrack, selectedAudioTrack,
selectedVideoTrack
([#&#8203;3910](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3910))
([dc2a2ab](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/dc2a2ab863dc53fb2da1c2cea99e59e6d8387803))

##### Features

- **android:** add `onControlsVisiblityChange`
([#&#8203;3925](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3925))
([c2ce372](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c2ce372bcf21e21b97878e7efe77780168d09a79))
- **ios:** add live key to now playing dict to decorate when livestream
playing
([#&#8203;3922](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3922))
([91751ab](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/91751abc870109e0a2667dfffbd2baa2e4cf997b))

###
[`v6.2.0`](https://redirect.github.com/TheWidlarzGroup/react-native-video/blob/HEAD/CHANGELOG.md#620-2024-06-07)

[Compare
Source](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.1.2...v6.2.0)

##### Bug Fixes

- **android:** allow notification tap to foreground app
([#&#8203;3831](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3831))
([5c29b48](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/5c29b48747b4a30eb9911daa579baaa93402ba67))
- **android:** android cache header
([#&#8203;3832](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3832))
([c2a1424](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c2a14240ada24cd7c816bcb1ac942986eb855792))
- **android:** fix null pointer exception at playback start with item
metadata
([#&#8203;3879](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3879))
([c2cd752](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c2cd7529fd9c9a3c8b1ae7b87d0b80e822ca400d))
- **android:** optimize lag on old android
([#&#8203;3860](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3860))
([c2ce66e](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c2ce66ed26efb975335ee7b229744a9957b0621e))
- **android:** refactor source, fix random DRM issue and crop start on
local asset
([#&#8203;3835](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3835))
([bdf3e55](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/bdf3e556d802caa426d098d3f5fffe00dfb96660))
- **android:** video resolution orientation android
([#&#8203;3862](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3862))
([b698b18](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/b698b1837b71f2c93d488c521eb363e236e41aa5))
- ensure progress is sent before `onEnd` callback
([#&#8203;3872](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3872))
([7133c96](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/7133c96cac905f06f7a9bccd21eeb2f7a8a27c06))
- ensure view drop stop playback startup
([#&#8203;3875](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3875))
([ff1e24a](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ff1e24aaad179656af71443b3db3b9817a98eb92))
- **ios:** don't crash app if view wasn't found
([#&#8203;3841](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3841))
([cd28d37](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/cd28d370d27571b6f42b68e506b0bd1eaa9c770c))
- **ios:** fix notification controls enabled by default
([#&#8203;3861](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3861))
([5c6dfb2](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/5c6dfb26c56c2b9165b25a01b9224c489e2fd2a5))
- **ios:** fix playback status with lifecycle
([#&#8203;3819](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3819))
([1b51c15](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/1b51c1534881216f9975834657e8add1e7fe9621))
- **ios:** Implicit use of 'self' in closure - use 'self.' to make
capture semantics explicit
([#&#8203;3764](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3764))
([#&#8203;3881](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3881))
([ac0a9c3](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/ac0a9c3e3a4fec474a963207a343765d1776406d)),
closes
[#&#8203;3875](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3875)

##### Features

- add getCurrentPosition to component's ref
([#&#8203;3824](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3824))
([c7f4d7b](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c7f4d7b83bd09178f945d21e1f252a57ee1c8ab1))
- **android:** allow chunckless preparation
([#&#8203;3882](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3882))
([d4a8c24](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/d4a8c24f65eda5f3ce17263b234e47b667947e08))
- **android:** Change subtitleLayout from child to sibling of layout
([#&#8203;3830](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3830))
([c2cc917](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/c2cc91736852ea8b128e63bee71979d64b805c91))
- **android:** handle increment forward and rewind buttons
([#&#8203;3818](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3818))
([5059e7a](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/5059e7a7f122447a1762249429d5fe289cbb0a4d))

####
[6.1.2](https://redirect.github.com/TheWidlarzGroup/react-native-video/compare/v6.1.1...v6.1.2)
(2024-05-23)

##### Bug Fixes

- **android:** revert previous fix not compatible with old java version
([#&#8203;3828](https://redirect.github.com/TheWidlarzGroup/react-native-video/issues/3828))
([69bde44](https://redirect.github.com/TheWidlarzGroup/react-native-video/commit/69bde447b825507533627c7b7d931e5a5d19ef75))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone
America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone
America/Los_Angeles.

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/valora-inc/wallet).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsibnBtIiwicmVub3ZhdGUiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: valora-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG]: Android TV and Android Mobile CryptoException when play m3u8 hls with DRM
4 participants