React Native:带有 JWPlayer 的 Native Android UI 组件不显示视频图像
React Native: Native Android UI component with JWPlayer shows no video image
我为 Android 编写了一个本机 UI 组件,它基本上由一个自定义视图 (RelativeLayout) 组成,而后者又包含 JWPlayer。组件和播放器本身都在我的 RN 项目中正确渲染(尺寸、颜色等具有正确的值),但是当我开始播放时,我得到的是没有任何图像的声音。
但是,当我旋转 phone 时,我也得到了视频图像,一切似乎都正常。我在我的 Android 项目中尝试了 invalidate()
和 requestLayout()
之类的东西,但没有任何改变。我还尝试在包含本机组件的 RN 组件(通过更新其状态)中再次调用 render()
,但仍然没有成功。我创建了一个带有 Activity 的原生 Android 项目,其中包含与我编写的完全相同的自定义 RelativeLayout,并且一切正常。所以问题似乎出在React Native项目这边。
由于旋转 phone 后一切正常,因此必须有一些生命周期方法 re-renders/re-layouts RN 组件。
所以我的问题是:有这样的方法吗?
非常感谢。
PS。 JWPlayer 基于ExoPlayer.
我发现真正的问题不是播放,而是我的自定义视图是如何呈现的。我在这里添加答案,以防有人遇到同样的问题但找不到问题的真正根源。 解决方案解决了我的问题。
我为 Android 编写了一个本机 UI 组件,它基本上由一个自定义视图 (RelativeLayout) 组成,而后者又包含 JWPlayer。组件和播放器本身都在我的 RN 项目中正确渲染(尺寸、颜色等具有正确的值),但是当我开始播放时,我得到的是没有任何图像的声音。
但是,当我旋转 phone 时,我也得到了视频图像,一切似乎都正常。我在我的 Android 项目中尝试了 invalidate()
和 requestLayout()
之类的东西,但没有任何改变。我还尝试在包含本机组件的 RN 组件(通过更新其状态)中再次调用 render()
,但仍然没有成功。我创建了一个带有 Activity 的原生 Android 项目,其中包含与我编写的完全相同的自定义 RelativeLayout,并且一切正常。所以问题似乎出在React Native项目这边。
由于旋转 phone 后一切正常,因此必须有一些生命周期方法 re-renders/re-layouts RN 组件。
所以我的问题是:有这样的方法吗?
非常感谢。
PS。 JWPlayer 基于ExoPlayer.
我发现真正的问题不是播放,而是我的自定义视图是如何呈现的。我在这里添加答案,以防有人遇到同样的问题但找不到问题的真正根源。