Git Product home page Git Product logo

react-native-rn-videoplayer's People

Contributors

a-aning avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

react-native-rn-videoplayer's Issues

CONFIGURING一直卡60

WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed in version 5.0 of the Android Gradle plugin.
For more information, see http://d.android.com/r/tools/update-dependency-configurations.html.
<=======------> 60% CONFIGURING [7m 8s]
<=======------> 60% CONFIGURING [7m 9s]e dependencies of :react-native-rn-videoplayer:classpath
<=======------> 60% CONFIGURING [7m 51s]

如果能在加个播放速率,那就简直完美了

这个组件非常符合我的需求
1、就是差个播放速率(像短视频可能不需要),像教学课程这种一般学生都喜欢快进的看 (可能会面临大家的播放速率不一样 0.7 ,1, 1.5 ,2这种 )
2、还有个是vip展示页 有的需求是播放到几分钟(只免费几分钟) 就要求停止播放了 要求开通会员 (作者好像在里面有实现,只是把那个组件删了,其实可以提供一个自定义方法 方便自定义布局)
{(showOpenVip && this.props.VIPCONTS) ?
this.props?.showNoVipView() : null }
还有一种是播放视频个数,比如用户 一天只能免费3个视频 这一天就只能显示那个开通会员的页面了,和上面的有点不一样,上面的是播放中,后者是一开始就不给播放 只是展示个自定义界面。
作者真是用心了

视频全屏后,手势,播放按钮,进度条异常

1:视频全屏后,手势,播放按钮,进度条异常
2:增加场景:播放地址在点击播放后后才获取并且才开始播放
3:在场景2的情况下没有url的情况进度条手势必须失效,点击播放获取播放地址后才重新生效

在安卓下有bug,播放时的视频尺寸不对

安卓加载时尺寸是对的,播放时尺寸就不对了
全屏时,视频是侧过来了,实际上视频的宽高并没有改变,导致了横过来时时依然是小屏幕播放,只是横着的

全屏后,无法退出全屏

求助,为啥全屏后点击 退出全屏的icon没有反应,日志显示

unknown:ReactNative: Got DOWN touch before receiving UP or CANCEL from last gesture

老哥,用不了啊

好容易安装完了,调用直接GG

import Videoplayer from 'react-native-rn-videoplayer';

export default ({ navigation }) => {
  return (
    <>
      <StatusBar barStyle="dark-content" hidden={false} />
      <SafeAreaView>
        <ScrollView
          contentInsetAdjustmentBehavior="automatic"
          style={styles.scrollView}>          
          <View style={styles.body}>
            <Text style={styles.sectionTitle}>Step One</Text>
            <Button
              title="Jump to Video"
              onPress={() => navigation.navigate('Video')}
            />
            <VideoPlayer
              url="https://jingdian.qincai-zuida.com/20200609/8136_0462c8a7/index.m3u8"
            />
          </View>
        </ScrollView>
      </SafeAreaView>
    </>
  );
}

报错如下:
image
在线等,挺急的

install进来之后按照文档配置完,开始run发现卡死在这里

使用版本:
"react": "17.0.1",
"react-native": "0.64.0",
"react-native-rn-videoplayer": "^2.2.10",

在我npm install进来之后,按照文档配置完,开始react-native run-android运行,发现卡死在解析依赖这里。
Err:
:react-native-rn-videoplayer > Resolve dependencies of :react-native-rn-videoplayer:classpath

微信图片_20210517175501

Could not resolve com.android.tools.build:gradle:3.3.1

您好,我是原安卓原生开发了解不是很多,在yarn add react-native-rn-videoplayer加入包手,
yarn android出现以下编译错误,我了解到应该是访问编译相关的远程文件报错了,但不知道用什么办法去解决。谢谢。

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':react-native-rn-videoplayer'.

Could not resolve all artifacts for configuration ':react-native-rn-videoplayer:classpath'.
Could not resolve com.android.tools.build:gradle:3.3.1.
Required by:
project :react-native-rn-videoplayer
> Could not resolve com.android.tools.build:gradle:3.3.1.
> Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.3.1/gradle-3.3.1.pom'.
> Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.3.1/gradle-3.3.1.pom'. Received status code 502 from server: Bad Gateway

image

增强:返回上一个页和左右滑动视频手势冲突

当导航返回手势的滑动宽度值比较大时,左右滑动视频区域手势转换成返回上一页手势效果;
导航:react-navigation

gestureResponseDistance: { horizontal: Dimensions.get('window').width };//手势返回滑动区域为屏幕宽度

Getting console warnings

  • ComponentWillMount has been renamed and is not recommended for use
  • Please update the following components: % VideoPlayer
  • Can't perform a React state update on an unmounted component. Indicates a memory leak. To fix cancel all subscriptions and asynchronous tasks in a UseEffect cleanup. in TipsPaused(at react-native-rn-videoplayer/index.js:1273)
  • Then the last, the video player doesn't play sometimes, it shows paused and the video won't load

Full screen Landscape issue

Hi This library is awesome,
The only problem is i am not able to turn player into the full screen. when i am clicking on full-screen icon..
the screen is not rotating to Landscape.
even tried manually

Here is what i tried so far

const onEnterFullscreen =async () => {
        if (Platform.OS === "android") {
            RNOrientation.lockToLandscape()
        } else {
            //Orientation.lockToLandscapeRight()

            await  Orientation.lockToLandscape(); 

        }

    }
    const onExitFullscreen = () => {
        if (Platform.OS === "android") {
            RNOrientation.lockToPortrait();
            RNOrientation.unlockAllOrientations()
        } else {
            Orientation.lockToPortrait();
            Orientation.unlockAllOrientations()
        }

    }

null is not an object (evaluating 'event.nativeEvent.pageX)

"react-native": "0.63.2",

会报错:
null is not an object (evaluating 'event.nativeEvent.pageX)
因为
onLongPress={this.speedLongTouch}
onPressOut={this.speedLongTouchOut}
var speedStartX = evt.nativeEvent.pageX
中的nativeEvent不存在。

官方文档:
https://reactnative.dev/docs/pressevent
example:
{
changedTouches: [PressEvent],
identifier: 1,
locationX: 8,
locationY: 4.5,
pageX: 24,
pageY: 49.5,
target: 1127,
timestamp: 85131876.58868201,
touches: []
}
不需要nativeEvent吧。直接pageX就行。我理解没错吧

need update for react native 0.73.1

update this on gradle
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'com.android.support:appcompat-v7:1.3.0'
implementation 'com.facebook.react:react-native:+'

在ScrollView中使用,全屏模式下 手势、进度条控制失效

我又来了。。

在ScrollScoView中嵌套使用,点击全屏后,
全屏模式下手势、进度条控制失效了,上下滑动时ScrollScoView优先响应了,造成了页面的上下滚动

我是个小白,个人猜测是,是否在全屏模式中,video的手势响应优先级应该高于ScrollScoView?

发现个致命问题,这串代码在render里执行

if (this.url && this.url != this.props.url) { this.onchangeUrl() }
切换视频时报错,最后排查得到onchangeUrl 这个方法里面带有this.setState
而onchangeUrl 的调用位置却是在render处 这样会到导致死循环

大佬要判断地址是否和上一次的一样 可以在生命周期componentDidUpdate 里完成哦

Android视频无法全屏,参考issues/2046修改settings.gradle,启动时Gradle报错

版本信息:
"react-native": "0.63.3",
"react-native-rn-videoplayer": "^2.2.9",

已参考https://github.com/A-ANing/react-native-rn-videoplayer/issues/11#issuecomment-719136928 
将react-native-rn-videoplayer中dependencies依赖手动添加到项目package.json

启动后发现视频在Android设备中无法全屏,
参考https://github.com/react-native-video/react-native-video/issues/2046 修改settings.gradle后,项目启动报错

报错日志:

> Task :app:mergeDexDebug FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.2/userguide/command_line_interface.html#sec:command_line_warnings
272 actionable tasks: 2 executed, 270 up-to-date
D8: Cannot fit requested classes in a single dex file (# fields: 68274 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
        at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:131)
        at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:118)
        at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102)
        at com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run(DexMergingTask.kt:444)
        at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:335)
        at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:57)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
        at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
        at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:198)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
        at java.lang.Thread.run(Thread.java:748)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
        at com.android.tools.r8.utils.t.a(:55)
        at com.android.tools.r8.D8.run(:11)
        at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:116)
        ... 33 more
Caused by: com.android.tools.r8.utils.AbortException: Error: null, Cannot fit requested classes in a single dex file (# fields: 68274 > 65536)
        at com.android.tools.r8.utils.Reporter.a(:21)
        at com.android.tools.r8.utils.Reporter.a(:7)
        at com.android.tools.r8.dex.VirtualFile.a(:33)
        at com.android.tools.r8.dex.VirtualFile$h.a(:5)
        at com.android.tools.r8.dex.ApplicationWriter.a(:13)
        at com.android.tools.r8.dex.ApplicationWriter.write(:35)
        at com.android.tools.r8.D8.d(:44)
        at com.android.tools.r8.D8.b(:1)
        at com.android.tools.r8.utils.t.a(:23)
        ... 35 more


FAILURE: Build failed with an exception.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.