TheWidlarzGroup / react-native-video

A <Video /> component for react-native
http://thewidlarzgroup.github.io/react-native-video/
MIT License
7.13k stars 2.88k forks source link

[Project. Status] Version 6.0.0-alpha #2723

Closed hueniverse closed 5 months ago

hueniverse commented 2 years ago

After a long period of inactivity, developments have restarted in this repository. V6.x branch already contains number of alpha releases.

These releases includes many bug fixes and improvements from many contributors. I want to express my deep gratitude for all the help in getting this important milestone. Many contributors had to rebase their contributions multiple times as some where a few years old.

Please test the new release with your app and report back any issues. Please clearly label your issues as v6 so that we can prioritize them.

Main changes in V6 branch:

This branch should now be be stable, we reach the beta state. Please report any regressions comparing to 5.2.1, they will be handled as a priorityand tagged https://github.com/react-native-video/react-native-video/labels/critical%20for%20release If you want to contribute, following ticket are a good first approach: https://github.com/react-native-video/react-native-video/labels/good%20first%20issue

Roadmap to be discussed here: https://github.com/react-native-video/react-native-video/discussions/3351 Project status discussions here: https://github.com/react-native-video/react-native-video/discussions/3350

(Edited by @freeboub)

JstnEdr commented 2 years ago

Looks like fullscreen video on Android is still not supported. Are there any plans to address this in v6?

hueniverse commented 2 years ago

@JstnEdr if there is a PR ready or someone willing to take the lead, sure. There are no free resources around atm...

baveku commented 2 years ago

I hope we can custom control UI, on iOS it's beautiful but on Android, we don't have a fullscreen button. With 0.69.0 we need to integrate using New Architecture, I think we need to migrate this library.

JongGyuChoi commented 2 years ago

A build error occurred in RCTVideoManager

Screen Shot 2022-06-22 at 10 57 01 AM Screen Shot 2022-06-22 at 10 57 07 AM

.

baveku commented 2 years ago

A build error occurred in RCTVideoManager Screen Shot 2022-06-22 at 10 57 01 AM Screen Shot 2022-06-22 at 10 57 07 AM

.

I guess you use version v6 on npm, so you need to move from npm to github repo "react-native-video": "react-native-video/react-native-video" to fix it

Dr-Horv commented 2 years ago

@hueniverse Any ETA how long the alpha vill be ongoing and when the 6.0 release will happen?

Not asking to stress, but need to know for a project I'm working on if we need to go through the hoops (documentation, signoff etc) of using an alpha-version of a library in our next production release since we have conflicts with another dependency on the Exoplayer and can't keep using 5.2

hueniverse commented 2 years ago

@Dr-Horv Hard to say but hopefully an official v6 by end of July. The main blocker is that we only have 2-3 people actually doing the work. If more people reviewed PRs and approved them (or report issues), we would be moving much faster.

rafaelbrun commented 2 years ago

@hueniverse @freeboub or anyone that can provide some information. Is there any updates on an ETA for the 6.0 release? And what is needed so that this release can happen?

I'm working in a project that our main resource is using this lib, me and my team may be able to help if we have some information about how much work is left to get this release out.

You can reach me out on my email if you think that's better: rafael.golin@profusion.mobi

Thanks for you hard work on this amazing lib!!

hueniverse commented 2 years ago

@rafaelbrun see: https://github.com/react-native-video/react-native-video/issues/2788

rafaelbrun commented 2 years ago

@hueniverse @freeboub or anyone that can provide some information. Is there any updates on an ETA for the 6.0 release? And what is needed so that this release can happen?

I'm working in a project that our main resource is using this lib, me and my team may be able to help if we have some information about how much work is left to get this release out.

You can reach me out on my email if you think that's better: rafael.golin@profusion.mobi

Thanks for you hard work on this amazing lib!!

@cobarx

freeboub commented 2 years ago

@rafaelbrun Hello, I invite you on a slack channel. I advice you to fork this repo for your corporate usage... I will take the lead for releases, but I am doing it only on my spare time, so I cannot be 'reactive' every days :) Thank you.

smikheiev commented 1 year ago

are there some plans about releasing 6.0.0-alpha.2? there's 6.0.0-alpha.2 and even 6.0.0-alpha3 in the changelog, but the latest released version in npm is 6.0.0-alpha1? šŸ¤”

freeboub commented 1 year ago

Version 6.0.0.alpha.3 has been released on npm

jemise111 commented 1 year ago

Hey @hueniverse @freeboub (or anyone else who can help). Thank you for all of the hard work on v6. We're trialing using the latest alpha in our app, as it is required for compatibility with another dependency we're using, react-native-track-player.

I was wondering if there is a list of known issues/risks in the latest alpha release anywhere, so we may know what to look out for in testing the stability of v6 in its current state?

Thanks for any help šŸ™

Lakston commented 1 year ago

In alpha 3 you are using a fork of ScalableVideoView, is that really needed ?

It is causing Duplicate class issues on android builds if another lib is using ScalableVideoView.

freeboub commented 1 year ago

@Lakston ScalableVideoView is not used anymore in V6.0.0 @jemise111 there is no possibility to use mulitple exoplayer version in my knowledge ...

HaddyYang commented 1 year ago

The fullscreenOrientation attribute is not work in react-native-video@6.0.0-alpha.3, both Android and iOS. My react-native version is 0.70.3

DennisdeWitNL commented 1 year ago

alpha.3 completely breaks iOS

node_modules/react-native-video/ios/Video/RCTVideo.swift:24:34: error build: Cannot find type 'RCTEventDispatcher' in scope
zchwyng commented 1 year ago

When will alpha 4 be released to npm?

happyfloat commented 1 year ago

alpha 3 works great for me in development, but in release build it keeps crashing almost instantly (most of the time, but sometimes it takes a while of scrolling up and down in my item feed) with this error:

EXC_BREAKPOINT react_native_video.RCTVideoPlayerViewController reactViewController > superview > ticalCornerRadius:

Similar issues grouped together in sentry error reporting, e.g:

RNSScreen | EXC_BREAKPOINT: dyld_v1 arm64e > iOntology27UsoEntity_common_Arithmetic > reactViewController > > superview

EXC_BREAKPOINT react_native_video.RCTVideoPlayerViewController ePower > reactViewController > superview

Anybody has an idea whats wrong?

alpha 4 is not yet released to test.

Edit: I tried to set a fixed video height to the parent container too, but I don't think it did change anything. Edit: I also added this patch to my alpha 3 version from alpha 4: https://github.com/react-native-video/react-native-video/pull/2907 and I think this issue is new, but not sure.

NSInternalInconsistencyException react_native_video.RCTVideoPlayerViewController NSInternalInconsistencyException: Cannot remove an observer <NSKeyValueObservance 0x28266b390> for the key path "currentItem.playbackBufferEmpty" from <AVPlayer 0x282ae9970>, most likely because the value for the key "currentItem" has changed without an appropriate KVO notification being sent. Check the KVO-compliance of the AVPlayer class.

happyfloat commented 1 year ago

This time I catched some error in XCode and I could solve my problem by doing this:

diff --git a/node_modules/react-native-video/ios/Video/RCTVideo.swift b/node_modules/react-native-video/ios/Video/RCTVideo.swift
index 47231a7..3dc48e1 100644
--- a/node_modules/react-native-video/ios/Video/RCTVideo.swift
+++ b/node_modules/react-native-video/ios/Video/RCTVideo.swift
@@ -646,7 +646,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH

         if _controls {
             let viewController:UIViewController! = self.reactViewController()
-            viewController.addChild(_playerViewController)
+            viewController?.addChild(_playerViewController)
             self.addSubview(_playerViewController.view)
         }
freeboub commented 1 year ago

@happyfloat can you please open a PR with this change ?

tsalama commented 1 year ago

Hey guys, just curious if there's a list of outstanding TODOs and necessary tasks before v6 officially goes live? I see alpha.5 was released last week though, awesome work.

Larens94 commented 1 year ago

@Lakston ScalableVideoView is not used anymore in V6.0.0 @jemise111 there is no possibility to use mulitple exoplayer version in my knowledge ...

how did you solve the problem? I currently receive: Caused by: java.lang.RuntimeException: Duplicate class com.yqritc.scalablevideoview.BuildConfig found in modules jetified-Android-ScalableVideoView-10e7b4da8b-runtime (com.github.adityaxjha:Android-ScalableVideoView:10e7b4da8b) and jetified-android-scalablevideoview- v1.0.4-jitpack-runtime (com.github.MatrixFrog:android-scalablevideoview:v1.0.4-jitpack)

eugened-ith commented 1 year ago

Hi! Coming from expo-av because of android crash. Tried both react-native-video v5.2.1 and v6.0.0-alpha.6 the app crashes with alpha with same error as expo-av with the next stack trace

java.lang.OutOfMemoryError: Failed to allocate a 2944 byte allocation with 47976 free bytes and 46KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
    at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:69)
    at java.lang.StringBuilder.<init>(StringBuilder.java:102)
    at java.lang.String.replace(String.java:2787)
    at com.google.android.exoplayer2.util.Log.appendThrowableString(Log.java:295)
    at com.google.android.exoplayer2.util.Log.e(Log.java:254)
    at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:440)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
    at java.lang.Thread.run(Thread.java:1012)

The context is that I'm working on a twitter-like app and have a flash list of videos and other media that comes from IPFS and they can have rather big size, probably up to 1.5GB but I don't have any ability to compress these files anyhow so they come to app as is.

I'll go with v5.2.1 now as it just works now, but I'm wondering what can cause such problem in both react-native-video and expo-av.

I also have enabled android:largeHeap and android:hardwareAccelerated.

Thank you!

lutfullo777 commented 1 year ago

Is getting videoTrack added for IOS when onLoad video?

tsalama commented 1 year ago

Hi all, just curious if there's a list of outstanding TODOs and necessary tasks blocking the official v6 release? I see alpha.7 was released last month though, awesome work to those who contributed.

freeboub commented 1 year ago

@tsalama the list of ticketed I tagged as mandatory: https://github.com/react-native-video/react-native-video/issues?q=is%3Aopen+is%3Aissue+label%3A%22critical+for+release%22

I hope it will be enough to have at least the same stability than 5.2

tsalama commented 1 year ago

@freeboub Ok great to know thank you.

bulkinav commented 11 months ago

Currently the 'pictureinpicture' pros only support IOS. Is there an understanding when it will be available for Android?

I see the old PR for react-native-video 5.x (https://github.com/react-native-video/react-native-video/pull/1776), but would like to see and for 6.x

In my opinion, this is a very popular feature.

boiboif commented 10 months ago

Hello, when will alpha 9 be released to npm? I need typescript support. Thanks.

vargajacint commented 10 months ago

@boiboif You can add "@types/react-native-video" to your devDependencies until it's not released, or you can specify a remote branch name instead of the version number

boiboif commented 10 months ago

@boiboif You can add "@types/react-native-video" to your devDependencies until it's not released, or you can specify a remote branch name instead of the version number

@vargajacint Thanks!

freeboub commented 10 months ago

Dear all, alpha.9 has finally be released ! šŸš€ Notice that the typescript support has finally be integrated. Here is change log: https://github.com/react-native-video/react-native-video/releases Thank you to all contributors, and special thank to @KrzysztofMoch !

EvelynGuoEntain commented 9 months ago

Hi team, when will the migration to androix.media3 be included in new release? Thanks.

avencat commented 9 months ago

Hi @EvelynGuoEntain it seems it is built in 6.0.0-beta.0

afkcodes commented 9 months ago

Hello is MergingMediaSource is going to be available in 6.0 or is it planned to be supported ?

freeboub commented 5 months ago

let's continue this discussion in https://github.com/react-native-video/react-native-video/discussions/3350